2016-07-28 2 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 повторить в. (каждая итерация имеет свой собственный охват). Он содержит текущий индекс в связанном массиве. если вы посмотрите на ng-repeat docs, он будет там. – ste2425

+0

Спасибо! Ясно. –

ответ

0

Да, $index - встроенный параметр ng-repeat. ng-repeat директива angularJS автоматически знает индекс массива, который он итерирует.

Вы можете понять это лучше, сравнив его с циклом 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

Спасибо! Ясно. –

0

$ индекс переменной динамически созданный нг-повтор директивы ANGULAR в , Он похож на индекс, используемый массивом для хранения некоторых данных.

Подробнее об этом здесь: https://docs.angularjs.org/api/ng/directive/ngRepeat

+0

Спасибо! Я рассмотрю этот учебник. –

Смежные вопросы