Tôi cần thay đổi biến số $scope
bên trong bộ lọc. Biến số $scope
được sử dụng cho thuộc tính ng-show
và thông tin chỉ được gắn trong bộ lọc vì tôi có ng-repeat
với một số thông tin và được một số bộ lọc áp dụng và tôi cần biết khi nào bộ lọc xóa tất cả kết quả của tôi để hiển thị thông báo ... đây là một ví dụ: (đây chỉ là một ý tưởng)
.controller("thing", function() {
$scope.showText = false;
})
.filter("filterText", function() {
return function(information) {
if (information == "") { /* NEED TO CHANGE $scope.showText to true */ }
}
})
HTML:
<div ng-view="showText"> Some Text here </div>
<div ng-repeat="info in information | filterText"></div>
Cảm ơn.
Bạn có nghĩ bộ lọc nên truy cập bộ điều khiển và thay đổi thông tin không? Tại sao nên làm thế? Không phải là một hành động điều khiển kích hoạt nếu showText nên thay đổi? –
Bạn đang đi sai hướng. Tôi đồng ý với @PetarMinchev, bộ lọc không được quan tâm hoặc có quyền truy cập vào bộ điều khiển hoặc phạm vi. Theo định nghĩa, các bộ lọc chỉ quan tâm đến dữ liệu đầu vào được truyền vào có thể bị giảm và không có gì hơn. Với thông tin giới hạn được đưa ra về những gì bạn đang cố gắng đạt được, từ một quan điểm cấp cao, bạn nên sử dụng một ràng buộc một chiều để theo dõi nếu 'thông tin | filterText' có độ dài bằng không. – tamakisquare
bộ lọc không bao giờ nên thay đổi dữ liệu được cung cấp, vì điều này có thể gây ra nhiều chu kỳ '$ digest' và làm chậm hiệu suất. Đặt bất cứ thứ gì bạn cần vào bộ điều khiển. – g00fy