2013-08-26 4 views
35

私は角度を学習しています。私は変数の初期化のために、onLoadとng-initの違いを理解していません。この変数を作成する範囲。角度でのonLoadとng-initの違い

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> 

も私に分離された範囲についていくつかのアイデアを教えてください。 onloadng-initとして機能ng-includeディレクティブに固有の属性であるのに対し

答えて

49

ng-initは、どんな、div内側に配置することができるディレクティブ年代、span 'sです。私が何を意味するかを見るには、次のようなものを試してみてください:

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

2番目のものだけが表示されます。

隔離されたスコープとは、元のスコープからプロトタイプ的に継承しないスコープです。仮に親スコープを読み書きする必要のないウィジェットがあれば、ウィジェットの分離スコープを使用して、ウィジェットとウィジェットのコンテナが相互のプロパティをオーバーライドすることなく自由にスコープを使用できるようにします。角度のマニュアル、

NG-initをは、任意の初期化のために使用すべきではないから、

21

。エイリアシングにのみ使用する必要があります。任意の式は、(NG-挙げによって)部分図がロードされた後に評価する必要がある場合 https://docs.angularjs.org/api/ng/directive/ngInit

の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のが親ビューがロードされたときに一度だけ呼ばれ、一方。

0

私のために働きます。

<div ng-show="$scope.showme === true">Hello World</div> 
<div ng-repeat="a in $scope.bigdata" ng-init="$scope.showme = true">{{ a.title }}</div> 
関連する問題