2013-02-06 17 views
15

Tôi đang cố gắng thực hiện lệnh if thành lệnh ng-repeat nhưng tôi đang gặp khó khăn. mã của tôi mà làm việc cho bây giờ là:nếu câu lệnh trong chỉ thị ng-lặp lại trên Angular.js

<p ng-repeat="list in lists">{{list[id].title}}</p> 

Những gì tôi muốn làm về cơ bản là

<p ng-repeat="list in lists if list[id].selected">{{list[id].title}}</p> 

Tất nhiên, trên dòng thứ hai tôi nhận được một lỗi. Lời khuyên nào về điều này?

Cảm ơn bạn.

+2

Tôi không thực sự biết góc cạnh, nhưng từ những gì tôi đã đọc, bạn có thể đạt được điều đó bằng cách sử dụng bộ lọc. –

+0

Tôi đã làm một số nghiên cứu với một bộ lọc để hiển thị hay không. Tôi có thể làm điều đó với ng-switc, ng-show và ng-hide. Vấn đề là điều này sẽ thêm một tấn công cụ vào html của tôi, một cái gì đó mà tôi không biết, một khi nó là một danh sách rất lớn. @yabol – marceloduende

Trả lời

34

Như tôi đã viết trong nhận xét, bạn có thể sử dụng bộ lọc để đạt được điều đó. Dưới đây là ví dụ: http://jsfiddle.net/sebmade/ZfGx4/44/

ng-repeat="list in lists | filter:myFilter" 


Và mã lọc:

$scope.myFilter = function(item) { 
    return item.selected == true; 
}; 


Edit:
tôi thấy rằng nó có thể làm điều đó với bộ lọc nội tuyến như thế này:

ng-repeat="list in lists | filter:{selected: true}" 
+0

Cảm ơn ngài, đó chính là điều tôi đang tìm kiếm. Cảm ơn – marceloduende

+2

+1 cho cú pháp được nhúng – Webnet

+0

Tôi thấy fiddle đã bị xóa và hiển thị 404. vui lòng cập nhật liên kết. – Kurkula

10

Điều bạn cần thêm ở đây là bộ lọc:

<p ng-repeat="list in lists | filter:{selected:true}">test {{list.title}}</p> 

Tôi đã thêm a plnkr as an example.

Các vấn đề liên quan