1

Пытаясь решить проблему, которая выглядит очень простой, но трудно понять :-)angularjs ngclick ясно и поиск

У меня есть JSon файл, из которого я пытаюсь получить выборку данных с помощью AngularJS, основываясь на пользователя Input (Name), Browser отображает только те результаты, которые не являются старыми.

names.json

{"name": { 
    "Alan": [{ "Class":"1", "Books":"20"}], 
    "Sam": [{ "Class":"2", "Books":"204"}], 
    "John": [{ "Class":"4", "Books":"240"}], 
    } 
} 

Пример: Input: Alan

Выходные: Имя: Алан, Класс: 1, Книги: 20.

мне удалось напечатать ожидаемый результат со следующим кодом:

names.js файл:

var NamesApp = angular.module('NamesApp', []) 
NamesApp.controller('NameCtrl', function($scope, $http){ 
$http.get('names.json').success(function(data) { 
      $scope.getit = data; 
     }); 
     $scope.results = []; 
     $scope.findValue = function(userInput) { 
     angular.forEach($scope.getit.name, function(value, key) { 
     if (key === userInput) { 
     $scope.results.push({n: key, c: value[0].Class, b: value[0].Books}); 
     } 

    }); 

    }; 
}); 

И мой HTML-файл выглядит следующим образом:

<body ng-controller="NameCtrl"> 
    <input type="text" ng-model="userInput"> 
    <button type="submit" ng-Click="findValue(userInput)">Find</button> 
    <h3>Results</h3> 
    <span ng-repeat="result in results">Name: {{result.n}} , Class: {{result.c}} , Books: {{result.b}}</span> 
</body> 

Проблема: При поиске в первый раз или после обновления страницы, вы получите результаты в чистоте.

Как очистить результаты поиска, прежде чем искать другое имя?

В разделе «Мой результат» всегда должны быть только запрошенные результаты, а не старые результаты.

+1

Иногда вам нужно думать просто. Просто переместите «$ scope.results = [];» рядом с $ scope.findValue = function (userInput) {строка. –

ответ

3

Сбросить $scope.results перед каждым поиском.

$scope.findValue = function(userInput) { 
     $scope.results = []; 
     angular.forEach($scope.getit.name, function(value, key) { 
     if (key === userInput) { 
     $scope.results.push({n: key, c: value[0].Class, b: value[0].Books}); 
     } 
    }); 
} 
+0

Удивительный, спасибо. – phani

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