После работы над некоторыми руководствами по AngularJS
я сейчас пишу свой самый первый пример приложения самостоятельно. Я начал с показа очень простого списка сотрудников, который отлично работает. Теперь я хотел добавить простой текстовый фильтр, как я узнал из учебника.
Я добавил ввод с ng-model="filterText"
и | filter: filterText
в список в моем html, а также $scope.filterText = null;
в мой контроллер angularJS.
Когда я сейчас ввожу что-либо на вход, ничего не происходит. Когда я устанавливаю значение filterText
непосредственно в свой контроллер AngularJS
, фильтр работает, поэтому должна возникнуть проблема с обновлением значения textFilter
.
Что я могу сделать, чтобы заставить его работать? Я уже искал решение, но ничего не помогает.
Мой HTML-код:
<div class="container main-frame" ng-app="Employees" ng-controller="mainController" ng-init="init()">
<div id="searchbox">
<label>Filter: </label>
<input type="text" ng-model="filterText" />
</div>
<div id="emplist">
<h2>Employees</h2>
<p>
<ul id="emps">
<li ng-repeat="mitarbeiter in results | filter: filterText">
# {{mitarbeiter.id}} - <strong>{{mitarbeiter.name}}</strong>
</li>
</ul>
</p>
</div>
My angularJS:
var app = angular.module('Employees', []);
app.controller("mainController", function ($scope) {
$scope.results = [];
$scope.filterText = null;
$scope.init = function(){
jsonObject = eval(jsonfunction("parameters"));
angular.forEach(jsonObject, function (mitarbeiter, key) {
$scope.results.push(mitarbeiter);
});
}
})
ИЗМЕНИТЬ:
Согласно ответу NidhishKrishnan:
В firebug мой jsonObject выглядит следующим образом:
[{"id":1,"name":"John"},{"id":2,"name":"Jane"},{"id":3,"name":"Peter"}]
Я изменил рабочее решение с помощью этого jsonObject, и оно все еще работает нормально, так что это не должно быть проблемой...
Дополнительная информация: я работаю в режиме отладки VS 2013 с контроллером веб-api 2, который получает данные базы данных sql. Моя функция json — это не что иное, как ajax-запрос к контроллеру.
EDIT2:
Когда я не использую eval()
, ничего не меняется. Я успешно получаю свой список, но не могу использовать фильтр... вот мой запрос Ajax:
function jsonfunction(par) {
$.ajax({
url: url + par,
async: false,
success: function (data) {
json = data;
},
headers: getSecurityHeaders()
});
return json;
}
Ответ отформатирован в формате JSON в моем файле WebApiConfig.cs
. Ошибки быть не могло...
eval
? Это никогда не хорошая идея, чтобы использовать его. - person Oleg   schedule 15.04.2014