У меня возникли проблемы с фильтрацией записей JSON по определенным категориям с помощью элемента select option. Буду признателен за любую оказанную помощь.angularjs Объектный фильтр JSON select option
Что мое приложение должно сделать:
- Загрузка JSON данных из файла с помощью http.get (рабочий)
- Данные JSON содержит название должности и категории задания (и другие данные) для каждой записи
- Прочитайте каждый из этих записей из JSON в списке тэг на HTML (рабочий)
- фильтра этого список по категории работы по избранной опции элемент (не работает)
Я предполагаю, что проблема лежит где-то в моей функции контроллера. Но я совершенно новичок в angularjs, поэтому я не мог понять, в чем проблема ... Любая помощь очень ценится.
первые две записи моего JSON-файл с тегом "категорией" в нем:
[{
"jobtitle":"Multimedia Producer",
"name":"A. Text",
"shortname":"atext",
"shortdescription":"Werbeagentur",
"team":"XXX",
"lookingfor":"XXX",
"jobdescription":"XXX",
"portfolio":"XXX",
"contact":"XXX" ,
"categories":"none"
},
{
"jobtitle":"Kameraassistent",
"name":"Movie & Art",
"shortname":"movie_art",
"shortdescription":"Corporate Movies and more...",
"team":"XXX",
"lookingfor":"XXX",
"jobdescription":"XXX",
"portfolio":"XXX",
"contact":"XXX",
"categories":"photography"
}]
В controller.js:
var myApp = angular.module('myApp', []);
myApp.controller('MyController', ['$scope', '$http', function ($scope, $http){
$http.get('js/data.json').success(function(data){
$scope.jobs = data;
$scope.catchange = 'categories'
});
}]);
часть установки HTML-странице с выбором опции элемент:
<div ng-controller="MyController">
<span class="input">
<select ng-model="catchange" class="cs-select cs-skin-underline">
<option value="none">Suche nach Kategorien</option>
<option value="photography">Fotografie</option>
<option value="text">Text</option>
<option value="digital">Digital</option>
<option value="print">Print</option>
<option value="consulting">Beratung</option>
<option value="advertising">Werbung</option>
<option value="socialmedia">Social Media</option>
<option value="strategy">Strategie</option>
<option value="conception">Konzeption</option>
<option value="film">Film</option>
<option value="tv">TV</option>
</select>
</span>
</div>
<div class="searchlisting" ng-controller="MyController">
<ul class="portfolio-grid">
<li class="grid-item" ng-repeat="item in jobs | filter: catchange" data-jkit="[show:delay=300;speed=500;animation=fade]">
<img ng-src="img/searchlist/{{item.shortname}}_tn.jpg" alt="Photo of {{item.name}}">
<a class="ajax-link" href="single.html">
<div class="grid-hover">
<h1>{{item.jobtitle}}</h1>
<p>{{item.name}}</p>
</div>
</a>
</li>
</ul>
</div>
Большое спасибо за помощь.
Приветствия
Я не понимаю, что должна представлять эта строка? '$ scope.catchange = 'categories''.вы по существу устанавливаете свой фильтр в строку '' categories'', что даже не является допустимым параметром в списке выбора. – Claies
Да, я думаю, что проблема. Спасибо, Клей. Как я могу исправить это, чтобы он взял соответствующую запись? Извините - я новичок в угловом ... – guidokocht
Что он должен делать: Пользователь выбирает в списке выбора одна из записей (категорий) и угловая будет показывать только соответствующие записи (= category-tag) из файла JSON , guidokoch.ch/jobplattform/jobsuche.html – guidokocht