onLoad和ng-init之间的区别
我正在学习angular度。 我不明白onLoad和ng-init在初始化varibale时有什么区别。 在哪个范围内创build这个variables。
For example
<ng-include onLoad="selectedReq=reqSelected" src="'partials/abc.html'"></ng-include>
OR
<ng-include ng-init="selectedReq=reqSelected" src="partials/abc.html"></ng-include>
请给我一些关于隔离范围的想法。
ng-init
是一个指令,可以放在div
的span
,而onload
则是ng-include
指令的一个特殊属性,作为ng-init
。 看看我的意思是尝试像这样:
<span onload="a = 1">{{ a }}</span> <span ng-init="b = 2">{{ b }}</span>
你会看到只有第二个出现。
一个独立的范围是一个范围,它不能从其父范围原型inheritance。 用外行的话来说,如果你有一个不需要随意读写父范围的小部件,那么你可以在小部件上使用隔离范围,这样小部件和小部件容器可以自由使用它们的范围,而不会覆盖对方的属性。
从angular度的文件,
ng-init不应该用于任何初始化。 它应该只用于别名。 https://docs.angularjs.org/api/ng/directive/ngInit
如果在加载部分视图之后需要评估任何expression式(通过ng-include),则应该使用onload 。 https://docs.angularjs.org/api/ng/directive/ngInclude
它们之间的主要区别在于与ng-include一起使用时 。
<div ng-include="partialViewUrl" onload="myFunction()"></div>
在这种情况下,每次加载部分视图时都会调用myFunction 。
<div ng-include="partialViewUrl" ng-init="myFunction()"></div>
而在这种情况下,当加载父视图时,仅调用一次myFunction 。
为我工作。
<div ng-show="$scope.showme === true">Hello World</div> <div ng-repeat="a in $scope.bigdata" ng-init="$scope.showme = true">{{ a.title }}</div>