Tôi đang cố gắng tạo đầu vào được chọn và chuyển đối tượng đã chọn đến sự kiện thay đổi trên chế độ xem. Ví dụ về liên hệ ember sử dụng một <ul>
nhưng với một lựa chọn, chế độ xem cần phải ở bên ngoài mỗi cách khác, thay đổi đó thậm chí không được kích hoạt.trình đơn thả xuống chọn với ember
Đây là js xem:
App.SelectView = Ember.View.extend({
change: function(e) {
//event for select
var content = this.get('content');
console.log(content);
App.selectedWidgetController.set('content', [content]);
},
click: function(e) {
//event for ul
var content = this.get('content');
console.log(content);
App.selectedWidgetController.set('content', [content]);
}
});
Các ul
từ ví dụ hoạt động:
<ul>
{{#each App.widgetController.content}}
{{#view App.SelectView contentBinding="this"}}
<li>{{content.name}}</li>
{{/view}}
{{/each}}
</ul>
Nhưng nếu tôi thay thế html trực tiếp, sự kiện thay đổi không được sa thải (có ý nghĩa)
<select>
{{#each App.widgetController.content}}
{{#view App.SelectView contentBinding="this"}}
<option>{{content.name}}</option>
{{/view}}
{{/each}}
</select>
Vì vậy, tôi đoán lựa chọn phải được bao bọc trong chế độ xem .. trong trường hợp này làm cách nào để tôi vượt qua các đối tượng có liên quan ... Mã này kết quả trong toàn bộ mảng được thông qua:
{{#view App.select_view contentBinding="App.widgetController.content"}}
<select>
{{#each App.widgetController.content}}
<option>{{name}}</option>
{{/each}}
</select>
{{/view}}
@dhenze liên kết hữu ích, mặc dù câu trả lời hàng đầu sử dụng bộ sưu tập không được chấp nhận và câu trả lời thứ hai trả về giá trị chứ không phải đối tượng. Tôi tạo ra fiddle [link] (http://jsfiddle.net/haydenchambers/Kekj3/) trả về đối tượng NHƯNG nó đi qua chỉ mục bên trong lựa chọn vì vậy tôi không thể nhóm chúng theo kiểu bên trong optgroups (mục tiêu cuối cùng của tôi) –