我是棱角分明的初学者。我很确定我这样做是完全不正确的,但是因为我终于有了这个并且有点工作了#34;因为它在第二次点击时工作,我被困在这个方向,似乎无法找到另一种方法。
过滤器在第二次点击时排序,因为它初始化为"未定义"在第一次点击之前,根据我的信念设置它。
在我的HTML中:
<div class="col-xs-12 col-sm-4 location-list" ng-repeat="key in careerlist.location">
<div class="locations" ng-click="careerlist.criteriaMatch()">{{key}}
</div>
</div>
<div class="col-xs-12">
<div class="row">
<div class="col-xs-12 col-sm-6 col-md-4 job-container" ng-repeat="job in careerlist.career | filter : searchText | filter: selectExperience | filter: careerlist.criteria.name">
<h2>
{{job.title}}
</h2>
<h3>
{{job.location}}
</h3>
<div class="job-description" ng-bind-html="job.description | limitHtml : 200">
</div>
<br><br>
<button><a href="{{job.url}}">Read More</a></button>
</div>
<br><br>
</div>
</div>
在我的控制器中:
cl.criteriaMatch = function( criteria ) {
jQuery(document).on('click', '.locations', function(){
cl.criteria = {};
console.log("just the element text " + jQuery(this).text());
cl.criteria.name = jQuery(this).text();
return function( criteria ) {
return criteria.name === criteria.name;
};
});
};
答案 0 :(得分:0)
使用ng-click
代替jQuery#on('click')
。 Angular不知道应该更新过滤器。
<强>更新强>
@Makoto指出点击被绑定两次。看起来你应该完全删除jQuery绑定。我甚至会建议从你的项目中删除jQuery。