我有两个控制器,例如controller1,controller2,我想在controller1中注入controller2方法,我想通过我的JS API函数访问“document.querySelector('[ng-controller = custom-entity-design] -Ctrl]')”。 有可能得到吗?我尝试使用也不起作用的工厂服务。它说错误$ scope未定义。
源代码
**controller1**
myApp.controller("controller1",function($scope, $document, $http, $localStorage) {
$scope.test1 = function() {
alert("test1");
};
});
**controller2**
myApp.controller("controller2",function($scope,$http,$compile,$localStorage, $log) {
$scope.test2 = function() {
alert("test2");
};
});
详细...我想从controller1访问$ scope.test2方法。
我尝试使用工厂也没有工作。
源代码:
myApp.factory("testService", function($compile, $http, $scope) {
$scope.test2 = function() {
alert("test2");
};
}
factory injected in controller1
myApp.controller("controller1",['testService',function($scope, $document, $http, $localStorage) {
$scope.test1 = function() {
alert("test1");
};
}]);
任何人都可以帮助我实现这一目标。
答案 0 :(得分:1)
您使用.factory()
:
myApp.factory("testService", function($compile, $http, $scope) {
// just return the things in an object.
return {
name:"angular js",
test2 : function(){ alert("test2") }
}
});
myApp.controller("controller1",['$scope', '$document', '$http', '$localStorage','testService', function($scope, $document, $http, $localStorage, testService) {
$scope.test1 = function() {
alert("test1");
testService.test2(); // use the method from the testService.
};
}]);
您在控制器的函数args中缺少服务,当您使用.factory()
服务时,请确保返回对象{}
中的所有内容,使用此对象可以提供多个值/方法等。