Sau khi nâng cấp lên 1.13 tôi nhận được ngoại lệ này và tôi không thể tìm ra vấn đề là gì. Tôi cũng không thể tìm thấy bất kỳ tài nguyên hữu ích nào giải quyết được vấn đề của mình.Bạn đã sửa đổi *** hai lần trong một lần hiển thị
Điều này xảy ra đối với các thuộc tính tôi đặt trong thuộc tính được tính toán khác. Nhưng tài sản này chắc chắn được gọi chỉ một lần.
Tôi đã tạo ra một ví dụ jsbin: http://emberjs.jsbin.com/roderameya/edit?html,js,console,output
CẬP NHẬT
Theo yêu cầu tôi đăng một số mã mà gần hơn để thực hiện thật của tôi.
Ember.Controller.extend({
filter: '',
resultCount: {
total: 0,
matches: 0,
mismatches: 0
},
results: function() {
var items = this.get('model'),
matches = [],
resultCount = {};
// Apply search filter
matches = items.filter(function(item){
// Just a dummy filter function
return true;
});
// We need the total number matched by the filter string
resultCount.total = matches.length;
// The already matched items must be narrowed further down
matches = matches.filter(function(item) {
// Another filter function
return true;
});
resultCount.matches = matches.length;
resultCount.mismatches = resultCount.total - matches.length;
this.set('resultCount', resultCount);
return matches;
}.property('model', 'filter'),
});
Thx - nhưng tiếc là không dễ dàng như vậy. Đó là một ví dụ rất đơn giản mà tôi đã tạo ra. Trong ứng dụng của tôi có nhiều logic hơn. Vì vậy, trong thuộc tính "someData", tôi phải lọc mô hình và phải đếm số lượng mục được lọc mà tôi có. Và nó không chỉ là một số mà còn nhiều giá trị. – val
Giữ nguyên tắc tương tự. Tránh 'đặt' bên trong một thuộc tính được tính toán. Cố gắng trích xuất từng số vào một thuộc tính được tính toán. Nếu bạn muốn đăng một ví dụ liên quan nhiều hơn gần với trường hợp thực của bạn, chúng ta có thể thấy những gì chúng ta có thể làm. –
Ok, tôi vừa cập nhật bài đăng gốc với một ví dụ. Đây là nhiều hơn hoặc ít hơn những gì tôi có. – val