【发布时间】:2014-05-06 06:51:57
【问题描述】:
使用 AngularJS,是否可以使用“onload”参数来触发在“子”控制器(由包含的模板调用的控制器)中定义的函数?
例子:
<!-- parent container -->
<div ng-include="'/path/template.html'" onload="childOnLoad()"></div>
<!-- template.html -->
<div ng-controller="childController">
<p ng-bind="txt"></p>
</div>
<!-- childController.js -->
app.controller('childController', function($scope) {
$scope.txt = "Test text";
$scope.childOnLoad = function() {
alert("Loaded!");
};
});
这有意义吗? 还是我应该简单地调用 childController 中的函数,如下所示?
<!-- childController.js -->
app.controller('childController', function($scope) {
$scope.txt = "Test text";
$scope.childOnLoad = function() {
alert("Loaded!");
};
$scope.childOnLoad();
});
【问题讨论】:
-
那么...你建议在子控制器中简单地调用 $scope.childOnLoad() 吗?
-
是的,我只想在控制器内部调用
$scope.childOnLoad()函数。直到 Angular 添加另一个专门针对onload事件的指令。 -
我想提的另一件事是,如果您的
childOnLoad函数类似地初始化变量,您最好将其完全删除并直接在主体中初始化。
标签: angularjs angularjs-ng-include