Tôi đang gặp sự cố với {{actions}} trên thành phần Ember (1.11.0) không được kích hoạt khi thành phần được thêm vào trang động. Thật kỳ lạ, có vẻ như nó liên quan đến cách ứng dụng ember đã được thêm vào trang - thông qua mẫu mặc định và được thêm vào một "rootElement".Ember: Các hành động thành phần được tạo động không kích hoạt
Working JSBin: actions are triggered
Non-Working JSBin: actions aren't triggered
Component Định nghĩa của tôi:
<script type="text/x-handlebars" data-template-name="components/foo-bar">
<p>Component {{name}}</p>
<button {{action "doIt"}}>Do It</button>
</script>
App.FooBarComponent = Ember.Component.extend({
click: function() {
console.log('click fired! - ' + this.get('name'));
},
actions: {
doIt: function() {
console.log('doIt fired! - ' + this.get('name'));
}
}
});
Các nhấp chuột() sự kiện và DoIT() hành động không được kích hoạt khi các thành phần đã được thêm vào trang động. Tôi đang sử dụng append() phương pháp để thêm các thành phần để trang:
App.IndexController = Ember.Controller.extend({
count : 1,
actions: {
createNewFoobBar: function() {
this.set('count', this.get('count') + 1);
var comp = this.container.lookup('component:foo-bar');
comp.set('name', this.get('count'));
comp.set('controller', this);
comp.append();
}
}
});
Trong cả hai trường hợp, hành động được kích hoạt đúng cách khi thành phần này là một phần của mẫu:
{{foo-bar name="one"}}
Tôi có thể nhận được sự kiện click() để kích hoạt thành phần trong ví dụ JSBin trước đây của tôi bằng cách thay đổi append() thành appendTo ('# content') Tuy nhiên, hành động của thành phần vẫn không hoạt động kỳ vọng. [jsbin] (http://emberjs.jsbin.com/fojitukere/1/edit?html,js,console,output) – Clavicle