我对AngularJs中的控制器有一点问题。
我在第一个控制器中有一个控制器和一些其他控制器。基本上我有这个:
<body ng-app="scopeInheritance">
<div class="spicy">
<div ng-controller="MainController">
<p>Good {{timeOfDay}}, {{name}}!</p>
<div ng-controller="ChildController">
<p>Good {{timeOfDay}}, {{name}}!</p>
<p ng-if="valide()">Heelo i'm the if</p>
</div>
</div>
</div>
</body>
我的.js
var myApp = angular.module('scopeInheritance', []);
myApp.controller('MainController', ['$scope', function($scope) {
$scope.timeOfDay = 'morning';
$scope.name = 'Nikki';
$scope.testCtrl1 = true;
}]);
myApp.controller('ChildController', ['$scope', function($scope) {
$scope.name = 'Mattie';
$scope.timeOfDay = 'aternoon';
$scope.test = true;
$scope.valide = function () {
alert("i'm the function validate");
if($scope.testCtrl1 && $scope.test)
return true;
};
}]);
我想调用函数valide()来显示一些文本。该函数可以返回true或false,具体取决于控制器ChildController
问题是:函数valide()在每个控制器上调用。
这是正常的,但我怎么能限制它呢?当控制器ChildController
加载时,需要调用函数valide()。
也许不清楚,我做了一个实例:http://plnkr.co/edit/AM9loq4VRkL16mX8LR1v?p=preview
你可以看到两个警报。
EDIT = valide()返回true或false,具体取决于控制器的值ChildController和MainController