如何获取某些特定控制器的$scope
变量?
myApp.factory('Comment', ['$http', function ($http) {
var comment = {};
comment.add = function (shortName, taskNum, message) {
// how to call controller's method
// the following line dosen't work
myApp.ListPanelController.showTaskDetail(shortName, taskNum);
}
return comment;
}
myApp.controller('ListPanelController', ['$scope', 'Comment',
function ($scope, Comment) {
$scope.showTaskDetail = function (shortName, taskNum) {
Tasks.get(shortName, taskNum).success(function (data) {
// do something
});
}
}]
);
答案 0 :(得分:1)
你不能将$ scope注入服务,没有什么比单例$ scope更好了。
但是,如果您有兴趣使用$rootScope
,则可以将变量传递给您的服务或使用$apply
。
myApp.factory('Comment', ['$http', '$rootScope', function ($rootScope,$http){/*..*/}
但我会返回promise
并将showTaskDetail
称为控制器。
myApp.factory('Comment', ['$http', '$rootScope', function ($rootScope,$http){/*..*/}