2014-01-17 4 views
3

Я хотел бы знать, что не так с моим кодом, когда я создаю простой поисковый контроллер AngularJS, используя $ .get для извлечения данных из внешнего json-файла. Похоже, у меня есть все правильные данные. JSfiddle здесь: http://jsfiddle.net/jmccommas/MLzF7/Simple AngularJS Search

контроллер:

var personApp = angular.module('personApp', []); 

personApp.controller('PersonListCtrl', function ($scope, $http) { 
    $http.get('data/persons.json').success(function(data) { 
    $scope.persons = data; 
    }); 

}); 

HTML:

 <div ng-controller="PersonListCtrl"> 
      <div class="bar"> 
         Search: <input ng-model="query"> 
        </div> 
        <ul class=""> 
         <li ng-repeat="person in persons | filter:query"> 
          {{persons.name}} 

         </li> 
        </ul> 
     </div> 

JSON:

[ 
{ 
    "name": "John Doe" 
}, 
{ 
    "name": "Mike Doe" 
}, 
{ 
    "name": "Sam Doe" 
}, 
{ 
    "name": "Jerry Doe" 
}, 
{ 
    "name": "Paul Doe" 
}, 
{ 
    "name": "Peter Doe" 
}, 
{ 
    "name": "Fred Doe" 
}, 
{ 
    "name": "Ralph Doe" 
}, 
{ 
    "name": "Mike Doe" 
}, 
{ 
    "name": "John Doe" 
} 

]

+0

http://www.angulartutorial.net/2015/04/angular -js-basic-search-and-filter-data.html – Prashobh

ответ

4

Есть три маленькие вещи, которые собирается WR ong (по крайней мере, в скрипте JS) 1. Вы установили JS для загрузки DOM Ready. Измените это на отсутствие обертывания в голове. 2. В ng-repeat у вас есть person.name. Это должно быть person.name. Вы получаете человека, когда вы пробираетесь через людей. 3. JSON в скрипке нет. Так что в моей собственной скрипке, у меня сейчас жёстко объекту

http://jsfiddle.net/amitavroy/rCrGP/

Изменить свой Li к следующему

<li ng-repeat="person in persons | filter:query">{{person.name}}</li> 
+1

4. Обязательно включите ng-app = "personApp" в какой-то момент перед ng-контроллером – zclark

+0

Спасибо, отлично работает !! – jmccommas