AngularJS ng-include:onload调用包含在控制器中定义的函数

Mat*_*zza 7 angularjs angularjs-ng-include

使用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!");
    };  
});
Run Code Online (Sandbox Code Playgroud)

是否有意义?或者我应该简单地调用childController中的函数,如下所示?

<!-- childController.js -->
app.controller('childController', function($scope) {    
    $scope.txt = "Test text";

    $scope.childOnLoad = function() {
        alert("Loaded!");
    };

    $scope.childOnLoad();   
});
Run Code Online (Sandbox Code Playgroud)

小智 2

在你的第二次尝试中,你做得对:你正在创建一些函数,该控制器的范围将这些函数作为属性,然后 $scope.childOnLoad(); 将调用您创建的函数。

事实上,您可以定义很多函数,但在加载时或加载完成时不会调用它们。