html:
<table>
<tbody>
<tr ng-repeat="row in Rows track by $index" ng-init="initUserDecision(row,$index)" >
<td>{{employeeName}}</td>
</tr>
</table>
<button id="change"/>
コントローラ:
$scope.initUserDecision = function(row,index){
$scope.employeeName=row["name"];
}
$scope.rows=[{id:1,name:'siva'},{id:2,name:'ram'}]
//changing $scope.rows in button click event and used $scope.$apply as well
angular.element(document).on("click", "#change", function () {
$scope.rows=[{id:1,name:'ravi'},{id:2,name:'raj'}]
$scope.$apply();
});
ng-init
tr が初期化されたときに関数が初めて呼び出されました。変更ボタンをクリックすると、行コレクションが変更され、ng-init
再度呼び出されることはありません。$index
ng-init
両方の時間を呼び出してトラックを削除した場合。track by を使用する$index
と、一度だけ呼び出されました。なぜそうなのですか?これについてのアイデア。