Angularjs在控制器加载时调用函数

时间:2014-07-29 17:23:53

标签: javascript angularjs controller

我对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

0 个答案:

没有答案