2016-01-30 2 views
1

Я разрабатываю веб-страницу с использованием угловых js. и я хочу, чтобы добавить фильтр на сайт,ng фильтрация с использованием области, определенной в контроллере

вот мой HTML код

<div ng-repeat="data in datas | filter:{area:course} | filter:{subject:subFilter} | filter:{city:cityFilter}"> 
         <h5><span class="text-warning">#</span>&nbsp;{{data.intrest}}</h5> 
         <div class="row"> 
          <div class="col-xs-3"> 
           <h5 class="text-info">Name</h5> 
           <p>{{data.name}}</p> 
          </div> 
          <div class="col-xs-3"> 
           <h5 class="text-info">Subject</h5> 
           <p>{{data.subject}}</p> 
          </div> 
          <div class="col-xs-3"> 
           <h5 class="text-info">Address</h5> 
           <p>{{data.city}}, {{data.state}}</p> 
          </div> 
          <div class="col-xs-3"> 
           <a href="#/view"><button class="btn btn-warning" style="margin-top:10px;">View</button></a> 
          </div> 
         </div> 
         <hr> 
        </div> 

И это мой файл контроллер

app.controller('mainController',['$scope','$http','$routeParams',function($scope,$http,$routeParams){ 
$http.get('assets/newtab.json').success(function(data){ 
    $scope.department=data; 
    $scope.whichItem=$routeParams.itemId; 
    $scope.course=$scope.department[$scope.whichItem].course; 
}); 
$http.get('assets/engineering.json').success(function(data){ 
    $scope.datas=data; 
    $scope.whichItem=$routeParams.itemId; 
    $scope.optItem=[ 
     {title:"Random",value:" "}, 
     {title:"Question Paper Setting",value:"Question Paper Setting"}, 
     {title:"Question Paper Passing Board",value:"Question Paper Passing Board"}, 
     {title:"Question Paper Post Auditing",value:"Question Paper Post Auditing"}, 
     {title:"Question Paper Evaluation",value:"Question Paper Evaluation"}, 
     {title:"Member for board of study",value:"Member for board of study"}, 
     {title:"Member for academic council",value:"Member for academic council"}, 
     {title:"Result passing board",value:"Result passing board"}, 
     {title:"Invigilation",value:"Invigilation"}, 
     {title:"Door Valuation",value:"Door Valuation"}, 
     {title:"Exam squad",value:"Exam squad"} 
    ]; 
}); 
}]); 

здесь идет отрывок из engineering.json и newtab .json

enginering.json

[{"id":"1","name":"Sam","dob":"","age":"21","gender":"","department":"16\/03\/1995","area":"Nuclear Medicine Technology Course","institution":"Park College of Technology ","city":"Tiruppur","state":"Tamil Nadu","intrest":"Question paper evaluation","mobile":"","email":"[email protected]","password":"jaya","subject":"Computer Networks"},{"id":"2","name":"jaya","dob":"","age":"21","gender":"","department":"16\/03\/1995","area":"Nuclear Medicine Technology Course","institution":"Park College of Technology ","city":"","state":"","intrest":"","mobile":"","email":"[email protected]","password":"jaya","subject":""},{"id":"3","name":"jaya","dob":"","age":"21","gender":"","department":"16\/03\/1995","area":"Nuclear Medicine Technology Course","institution":"Park College of Technology ","city":"","state":"","intrest":"","mobile":"","email":"[email protected]","password":"jjjj","subject":""}] 

newtab.json

[{"Department":"Arts","course":"B.A. English"}, {"Department":"Arts","course":"B.A. English (Computer Applications)"}, {"Department":"Arts","course":"B.A. Economics"}, {"Department":"Arts","course":"B.A. History"}, {"Department":"Arts","course":"B.A. Political Science"}, {"Department":"Arts","course":" B.A. Tamil "}, {"Department":"Arts","course":"B.Lit. Tamil "}] 

в мой контроллер на линии 5 я уже принес значение на щелкнули пункта и хранить его в переменной с именем «Конечно», я должен быть в состоянии фильтровать результат в моем HTML, используя этот курс". Я написал синтаксис в своем html-файле. но он не фильтрует правильный результат.

ответ

0

Из того, что я вижу, свойство .area для данных (enginering.json) не перекрывает свойство .course newtab. Для каждого из инженерных.json, это «курс ядерной медицины», поэтому независимо от того, какой отдел вы выберете из newtab, не будет никакого соответствия.

Working Fiddle here. В этой скрипке я перешел на. Сэма Сэма, чтобы показать, что фильтр работает (и удалил дополнительные фильтры для простоты, хотя они должны работать нормально).

Но другая возможная проблема в том, что данные, возвращаемые из $ HTTP обычно доступен в виде

$http.get(url).then(function(result) { 
    $scope.variable = result.data; 
} 

, так как объект вернулся из вызова $ HTTP имеет данные в свойстве .data. Так вот на что посмотреть.

EDIT: Как отметил @mzulch ниже, ваш синтаксис $ HTTP является правильным для угловых версий ниже 1,5

+1

Это, кажется устаревшим угловым 1.5, но '$ http' поддерживает' success' в качестве альтернативы «then», а обратный вызов получает в качестве параметров «данные, статус, заголовки, конфиг» вместо одного «ответа» – mzulch

+0

@mzulch, отличная точка. Спасибо, что напомнили об этом! Виноват. Ответ обновлен – Beartums

+0

эта скрипка, кажется, не помогает мне! будет ли какое-либо альтернативное решение? – Sam

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