2016-07-28 27 views
1

我目前正在學習AngularJS技術,我有一個問題。AngularJS的基本問題

我創建了一個HTML(從我正在學習這項技術的CodeProject站點複製而來),它基本上顯示了一本書的詳細信息(ISBN,Price等)。你可以參考下面的代碼片段:

<tr ng-repeat="item in items"> 
          <td>{{item.ISBN}}</td> 
          <td> 
           <span ng-hide="editMode">{{item.Name}}</span> 
           <input type="text" ng-show="editMode" ng-model="item.Name" /> 
          </td> 
          <td> 
           <span ng-hide="editMode">{{item.Price}}</span> 
           <input type="number" ng-show="editMode" ng-model="item.Price" /> 
          </td> 
          <td> 
           <span ng-hide="editMode">{{item.Quantity}}</span> 
           <input type="number" ng-show="editMode" ng-model="item.Quantity" /> 
          </td> 
          <td>{{(item.Quantity) * (item.Price)}}</td> 
          <td> 
           <span><button type="submit" ng-hide="editMode" ng-click="editMode = true;editItem(item)">Edit</button></span> 
           <span><button type="submit" ng-show="editMode" ng-click="editMode = false">Save</button></span> 
           <span><input type="button" value="Delete" ng-click="removeItem($index)"/></span> 
          </td> 
         </tr> 

控制器名稱是書店及以下是摘錄:

app.controller("Bookstore", function($scope) 
{ 
    $scope.items = [ 
     { ISBN: "5674789", Name: "ASP.NET MVC", Price: 560, Quantity: 20 }, 
     { ISBN: "4352134", Name: "AngularJS", Price: 450, Quantity: 25 }, 
     { ISBN: "2460932", Name: "Javascript", Price: 180, Quantity: 15 } 
    ]; 
} 

$scope.removeItem = function (index) { 
     $scope.items.splice(index, 1); 
    } 

問題 1.我特別困惑的是$指數參數在html中。這是AngularJS的一個內置屬性,它返回它所在的位置的索引?我問這個問題的原因是因爲它在.js文件中從未初始化過,所以我很困惑計算機是如何理解$ index是所選項目的位置的。

對不起,如果我的問題似乎有點混淆。

+0

這是一個可變的角度暴露了美國在伍重複的範圍。 (每次迭代都有自己的範圍)。它包含綁定數組中的當前索引。如果你查看ng-repeat文檔,它會在那裏。 – ste2425

+0

謝謝!很明顯。 –

回答

0

是的,$index是內置參數ng-repeat。 angularJS的ng-repeat指令自動知道它正在迭代的數組的索引。

通過將它與forEach循環進行比較,可以更好地理解它,該循環在迭代陣列時知道index的值。

爲了進一步澄清,你可以通過文件瀏覽: https://docs.angularjs.org/api/ng/directive/ngRepeat

您也可以通過這個不錯的博客張貼在這裏,以更好地理解它: http://liamkaufman.com/blog/2013/05/13/understanding-angularjs-directives-part1-ng-repeat-and-compile/

+0

謝謝!我會看看該教程。 –

0

ng-repeat創建每個項目的子範圍。

在這一子作用域它創建屬性,如$index內部

對於那些作用域屬性的完整列表,請參閱表中ng-repeat docs

+0

謝謝!很明顯。 –