Difference between onLoad and ng-init in angular

后端 未结 3 1012
失恋的感觉
失恋的感觉 2020-12-09 07:49

I am learning angular. I don\'t understand what is difference between onLoad and ng-init for initialization of a variable. In which scope it creates this variable.

<

相关标签:
3条回答
  • 2020-12-09 08:09

    ng-init is a directive that can be placed inside div's, span's, whatever, whereas onload is an attribute specific to the ng-include directive that functions as an ng-init. To see what I mean try something like:

    <span onload="a = 1">{{ a }}</span>
    <span ng-init="b = 2">{{ b }}</span>
    

    You'll see that only the second one shows up.

    An isolated scope is a scope which does not prototypically inherit from its parent scope. In laymen's terms if you have a widget that doesn't need to read and write to the parent scope arbitrarily then you use an isolate scope on the widget so that the widget and widget container can freely use their scopes without overriding each other's properties.

    0 讨论(0)
  • 2020-12-09 08:10

    From angular's documentation,

    ng-init SHOULD NOT be used for any initialization. It should be used only for aliasing. https://docs.angularjs.org/api/ng/directive/ngInit

    onload should be used if any expression needs to be evaluated after a partial view is loaded (by ng-include). https://docs.angularjs.org/api/ng/directive/ngInclude

    The major difference between them is when used with ng-include.

    <div ng-include="partialViewUrl" onload="myFunction()"></div>
    

    In this case, myFunction is called everytime the partial view is loaded.

    <div ng-include="partialViewUrl" ng-init="myFunction()"></div>
    

    Whereas, in this case, myFunction is called only once when the parent view is loaded.

    0 讨论(0)
  • 2020-12-09 08:15

    Works for me.

    <div ng-show="$scope.showme === true">Hello World</div>
    <div ng-repeat="a in $scope.bigdata" ng-init="$scope.showme = true">{{ a.title }}</div>
    
    0 讨论(0)
提交回复
热议问题