Tại sao mẫu của tôi không được cập nhật khi tôi thay đổi thuộc tính hiển thị? Các trạng thái documentation cho biết rằng {{each}}
là sự ràng buộc, nhưng rõ ràng là có điều gì đó mà tôi không biết.Ember, mẫu của tôi không cập nhật về thay đổi thuộc tính
Giống như mọi thứ trong Handlebars, trình trợ giúp {{#each}} là sự ràng buộc. Nếu ứng dụng của bạn thêm mục mới vào mảng hoặc xóa một mục, DOM sẽ được cập nhật mà không cần phải viết bất kỳ mã nào.
Dưới đây là bộ điều khiển của tôi
App.MaintemplateController = Ember.Controller.extend({
alist: ['foo', "bar"],
actions : {
addel: function(){
this.alist.push('xpto');
console.log(this.alist);
}
}
});
Trong mẫu của tôi, tôi có đoạn mã sau.
{{#each alist}}
<li>{{.}}</li>
{{/each}}
<button {{action 'addel'}}>Add element</button>
Dữ liệu được hiển thị chính xác và khi tôi nhấp vào nút, nó thêm phần tử vào thuộc tính, nhưng mẫu không làm mới. Tại sao? Làm thế nào để giữ nó đồng bộ với dữ liệu của tôi?
Điều này trả lời câu hỏi của tôi và giải quyết vấn đề này. Tuy nhiên tôi đã hy vọng có một giải pháp mà sẽ làm việc bất kể kiểu dữ liệu. Tôi phải làm gì nếu thay vì một mảng đơn giản, tôi có một đối tượng phức tạp và cần phải sử dụng gán để cập nhật một số thuộc tính bên trong của nó? – Pico
@ Pico, rất vui vì tôi có thể trợ giúp. Vâng trong trường hợp của một đối tượng phức tạp hơn bạn đi bộ xuống cây đối tượng và thiết lập các thuộc tính của nó, như: 'this.get ('complexObject.childOne.childTwo'). Set ('name', 'foo');' có ý nghĩa? – intuitivepixel
Vâng, cảm ơn bạn. – Pico