我已经开始学习 Ember.js,并且一直在尝试创建一个页面,其中包含一些在我收到事件时会更新的数据(由 Web 套接字推送)。
为了简单起见,我做了一个例子,我有一个节点列表,当我得到一个新节点时,我想在控制器上调用 addNode 来添加节点。然后应该更新 UI。
我遇到的问题是,我设法做到这一点的唯一方法是拥有一个全局控制器,然后在我的模板中使用它而不是我的模板模型。
我想将控制器链接到路由,并在控制器上有一个方法在事件到达时添加数据 - 而不是通过一些全局列表或其他东西。
这可能吗?如果是这样怎么办?
我已经包含了我的示例,因此您可以更改它并向我展示它是如何完成的。
js:
x = {title : 'test'};
App = Ember.Application.create();
App.Router.map(function() {
this.resource("system");
});
App.NodesController = Ember.ArrayController.create({
content: [],
addNode: function(nodeInfo){
this.pushObject(nodeInfo);
}
});
html:
<script type="text/x-handlebars" id="system">
{{#each App.NodesController}}
{{title}}
{{/each}}
</script>
谢谢,杰森