2
是否可以从app.run
的子控制器调用函数?app.run中的访问控制器功能
我的子应用程序的Facebook控制器:
function faceBookController ($scope, $rootScope, faceBookService) {
// I want to call this #scope.init in app.run
$scope.init = function() {
checkLoginState();
};
function checkLoginState() {
faceBookService.init();
}
}
angular.module('app.facebook').controller('faceBookController', ['$scope', '$rootScope', 'faceBookService', faceBookController]);
app.run:
function runFunction (User, $rootScope) {
*****
$window.fbAsyncInit = function() {
FB.init({
appId : '************',
version : 'v2.5' // use graph api version 2.5
});
//Here after facebook sdk connected execute init fruntion from faceBookController.
$rootScope.init();
}
angular.module('app.run', []).run(['User', '$rootScope', runFunction]);
和主要app.js文件:
angular.module('app', ['ngRoute', 'app.run', 'app.facebook']);
感谢您的回答,但你认为它正确的做法?或者还有其他方法可以达到同样的效果吗?我的意思是,如果你是我,并且是解决方案的最佳方法,那么也会这样做? – developer
@developer这是访问控制器功能的方式,因为我不知道你在做什么,我可以对最好的方法发表评论 – Sajeetharan
我正在认证用户低谷脸谱,所以我有一个名为'faceBookService'的服务它包含了所有的业务逻辑 - 就像首先检查用户是否登录一样,然后向facebook api运行所需的请求。还有一个名为'faceBookController'的控制器,它是'init'的那个服务。但是,在app.run之前,我已经将连接到Facebook的代码发出请求。所以控制器应该在app.run运行之后调用服务的方法 - 在与facebook建立连接之后。 – developer