[英]How can I filter through an array of objects while also comparing another object?
[英]Can i also put a scope through the filter?
如果選擇了另一個按鈕,我做了一個任務過濾器,並且需要編輯titel的tekst,我嘗試了一個作用域,但是如果作用域不起作用,你們可能不知道mayby還有其他辦法嗎?
我在談論它的規則$ scope,infotitel,我也嘗試將作用域函數放在上面的過濾器中,但這也不起作用。
這是我的過濾器代碼
$ scope.infoTitel ='完成'; -------------我將其放在每個if語句中,因為在單擊時它會將任務過濾掉是否完成,但是我要使用的范圍顯示html中的tekst completted etcc
return function(values, taskCompleted) {
// filter
return values.filter(function(value){
if(taskCompleted === 1) {
$scope.infoTitel = 'completed';
return value.completed;
}
else if(taskCompleted === 2){
$scope.infoTitel = 'all';
return true;
}
else if(taskCompleted === 3){
$scope.infoTitel = 'deadline missed';
return value.dateExpired;
}
// initially don't filter
else if(!value.completed && !value.dateExpired){
$scope.infoTitel = 'to do';
return value;
}
//return $sce.trustAsHtml(output); voor als html verandert
});
};
這是按鈕所在的部分
<div class="mini-nav">
<a class="clear-completed" ng-click="taskfilter = 3" ng-class="{'active' : taskfilter == 3}">
<span>deadline missed</span>.
</a>
<a class="clear-completed" ng-click="taskfilter = 2" ng-class="{'active' : taskfilter == 2}">
<span>show all </span>.
</a>
<a class="clear-completed" ng-click="taskfilter = 1" ng-class="{'active' : taskfilter == 1}">
<span>show completed</span>.
</a>
<a class="clear-completed" ng-click="taskfilter = 0" ng-class="{'active' : taskfilter == 0}" ng-init="">
<span>to do</span>.
</a>
</div>
這是html,第一行是我要顯示它的位置
li ng-repeat =“任務中的todo | filterTask:taskfilter” ng-class =“ getCSSClass(todo)” ------------- filterTask是我想放入的自定義過濾器范圍tekst在其中,因此是第一段代碼。
{{infoTitel}}由家人
-----------這是我想要的東西
<h1>{{ infoTitel }} by family</h1>
<div id="main" style="display: block;">
<ul id="todo-list" class="unstyled">
<li ng-repeat="todo in tasks | filterTask:taskfilter " ng-class="getCSSClass(todo)" >
<div class="view" ng-keyup="editTodo()">
<input type="checkbox" ng-click="toggleTodo(todo)" class="check-done-{{todo.completed}}" ng-hide= "todo.dateExpired "/>
<span class="done-{{todo.completed}}">{{todo.task}} </span>
<p ng-show="todo.completed">completed by: {{ todo.completedBy.name }} </p>
<p ng-show="todo.completed">date completed : {{ todo.dateCompleted | date : "MMM d, y h:mm a" }}</p>
<p ng-hide="todo.completed" ng-if= " !todo.dateExpired ">task deadline : {{ todo.timeToDeadline || "no deadline" | date : "MMM d, y h:mm" }}</p>
<p ng-hide="todo.completed" ng-if= " todo.dateExpired ">deadline missed on {{ todo.dateExpiration | date : "MMM d, y h:mm a"}}</p>
<div class="bar-holder" ng-show="todo.percentage || todo.percentage == 0" ng-if="!todo.completed " >
<div class="bar" style="width: {{todo.percentage}}%;" ></div>
</div>
</div>
<input class="edit" type="text" ng-model="todo.text" ng-keyup="editOnEnter(todo)" />
</li>
</ul>
我發現了問題,我可以直接在按鈕內更改tekst,添加另一次點擊,然后直接在其中添加tekst,這樣它就可以在
<div class="mini-nav">
<a class="clear-completed" ng-click="taskfilter = 'missed'; infoTitel = 'Deadline missed'" ng-class="{'active' : taskfilter == 'missed'}">
<span>deadline missed</span>
</a>
<a class="clear-completed" ng-click="taskfilter = 'all'; infoTitel = 'All'" ng-class="{'active' : taskfilter == 'all'}">
<span>show all </span>
</a>
<a class="clear-completed" ng-click="taskfilter = 'completed'; infoTitel = 'Completed'" ng-class="{'active' : taskfilter == 'completed'}">
<span>show completed</span>
</a>
<a class="clear-completed" ng-click="taskfilter = 'todo'; infoTitel = 'To do'" ng-class="{'active' : taskfilter == 'todo'}" ng-init="">
<span>to do</span>
</a>
</div>
ps:將3、2、1,0個過濾器名稱更改為missed,all,complete和todo,以更好地了解過濾器
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.