簡體   English   中英

如何編寫在AngularJS中返回true / false的服務?

[英]How do I write a service that return true/false in AngularJS?

我一直在閱讀AngularJS工廠和服務,並遇到了很多例子。 但是我不理解它們背后的邏輯,也無法使它們工作。

myApp.service('loginCheck', function(Facebook) {
this.loggedIn = false;
Facebook.login(function(response) {
    if (response.status == 'connected') {
        this.loggedIn = true;
    }
});
});

如果我對概念的想法是正確的,那么我需要獲得此服務以返回loggingIn變量。 我應該改為使用工廠嗎? 我需要一直存儲此變量,而不必在需要時再次進行調用。 我該怎么做。 我無法真正理解工廠和服務之間的區別。 我是這里的初學者。

if(loginCheck.loggedIn){
    console.log("logged in!");
}
else{
    console.log("not logged in :/")
}

謝謝。

你可以這樣做,

app.service('MyUser', [function($scope) {
  this.loggedIn = false;
  return {
    getStatus: function() {
       //call fb api
       this.loggedIn = true;
       return this.loggedIn;
    }
  }
}]);

演示

 var app = angular.module('app', []); app.controller('loginController',['$scope', 'MyUser',function($scope, MyUser) { $scope.isloggedin = MyUser.getStatus(); alert($scope.isloggedin); }]); app.service('MyUser', [function($scope) { this.loggedIn = false; return { getStatus: function() { this.loggedIn = true; return this.loggedIn; } } }]); 
 <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title></title> </head> <body ng-app="app" ng-controller="loginController"> <script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/angularjs/1.3.6/angular.js"></script> </body> </html> 

定義一個工廠,並將其作為依賴項傳遞給您的控制器。

var myApp = angular.module('myApp', []);
myApp.factory('loginCheck', ["Facebook", function(Facebook) {
  var object = {
    loggedIn: false,
    loginFacebook: function() {
      // do facebook login here:
      //Facebook.login(function(response) {
      //  if (response.status == 'connected') {
          object.loggedIn = true;
      //  };
      }
    };

  object.loginFacebook();
  return object;
}]);

myApp.controller('myCtrl', ['loginCheck', '$scope', function(loginCheck, $scope) {
  $scope.loggedIn = loginCheck.loggedIn;
}]);

在此處檢查此jsFiddle示例。

我不知道關於Facebook的身份驗證,但我認為這些鏈接可以幫助你: https://blog.brunoscopelliti.com/facebook-authentication-in-your-angularjs-web-app/HTTPS://developers.facebook .com / docs / javascript / howto / angularjs

要找到服務和工廠之間的區別,請查看此問題此鏈接

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM