У меня есть следующее выражение в моем коде:Использование IndexOf с угловой переменной
({{article.lawyers.indexOf(sortAtt)}})
где article.lawyers
является [1] и sortAtt
(определяется выпадающего списка на странице) является 1, и я получив -1 для вышеуказанного выражения.
У меня такое чувство, что я пропустил что-то очевидное, так как уже поздно, и я устал, но кто-то может помочь мне понять, почему это не работает? Я использую его в сортировщике, который фильтрует статьи (среди прочего) независимо от того, находится ли выбранный адвокат в массиве, находящемся в статье.lawyers.
Если я жестко задал «1» вместо sortAtt
, он работает, поэтому я думаю, что это какая-то проблема с привязкой.
Спасибо!
EDIT, чтобы добавить больше коды: Я не уверен, как сделать JSFiddle для этого, так как там слишком много еще за ним, но, надеюсь, этот код поможет:
<form>
<input type="text" class="form-control" placeholder="Search News Articles" ng-model="searchNews" size="70">
<br/><br/>
Find a year's articles:
<select ng-model="sortYear">
<option ng-click="sortYear='all';">All Years</option>
<option ng-repeat="article in news | orderObjectBy:'year':true | unique: 'year'" ng-click="sortYear={{article.year}};">{{article.year}}</option>
</select>
<br/><br/>
Find articles related to a specific attorney: <br/>
<select ng-model="sortAtt">
<option selected value="">All Attorneys</option>
<option ng-repeat="lawyer in attorneys| orderObjectBy:'lastname':false" value="{{lawyer.id}}" ng-click="sortAtt={{lawyer.id}};">{{lawyer.firstname}} {{lawyer.lastname}}</option>
</select>
</form>
</div>
<div id="news-titles">
<div ng-show="sortYear=='all'">
<div ng-bind-html="sortYear">All Articles</div><br/>
<div ng-repeat="article in news | filter: article.lawyers.indexOf(sortAtt) > -1 | filter:searchNews">
<h3 ng-bind-html="renderHtml(article.title)" ng-if="article.lawyers.indexOf(sortAtt) > -1"></h3>
</div>
</div>
<div ng-show="sortYear!='all'">
<div ng-bind-html="sortYear">{{sortYear}} Articles</div><br/>
<div ng-repeat="article in news | filter: article.lawyers.indexOf(sortAtt) > -1 | filter: {year: sortYear} | filter:searchNews">
<a href="" ng-click="loadNewsArticle(article.article);">{{article.title}}</a><br/><br/>
</div>
</div>
</div>
Есть ли может быть другим способ запустить этот фильтр? article.lawyers - это массив идентификаторов. Я просто хочу убедиться, что выбранный идентификатор (если он выбран) находится в этом списке перед отображением статьи.
Если поставить некоторые JSFiddle код, это поможет определить вашу проблему – Joy