我有2个控制器,ItemController
和AuthenticationController
。
AuthenticationController
被注入ItemController
ItemModule.controller('ItemController', function ($scope, AuthenticationController)
我现在正试图从模板中调用isLoggedIn()
中的AuthenticationController
函数。
我该怎么做?
答案 0 :(得分:1)
一种方法是将IsLoggedIn
方法放在$scope
上,如下所示:
$scope.isLoggedIn = AuthenticationController.isLoggedIn
您现在可以在模板中调用此功能
<span>Logged In: <strong>{{IsLoggedIn()}}</strong></span>
答案 1 :(得分:1)
我不确定注入控制器是否是一个好习惯,因为每个控制器应该专注于自己的部分。如果要在它们之间共享信息,则应使用服务。而不是注入控制器;你可以把它们嵌在你的前端。例如:
// js
app.controller('ParentController', function($scope) {
$scope.person = {greeted: false};
});
app.controller('ChildController', function($scope) {
$scope.sayHello = function() {
$scope.person.name = "Ari Lerner";
$scope.person.greeted = true;
}
});
// html
<div ng-controller="ParentController">
<div ng-controller="ChildController">
<a ng-click="sayHello()">Say hello</a>
</div>
{{ person }}
</div>
// displayed:
{greeted:true, name: "Ari Lerner"}