我刚开始使用Ember并遇到以下问题。我想观察我商店内某件商品的价值是否发生了变化。据我所知,这是@each指令的用途。不幸的是,这不会触发我的组件中的相应方法。Ember.js:让组件观察商店物品的值变化
我的代码结构如下。 当前路线返回我的商店的一个子集,并具有更改其中一个项目的操作。
export default Ember.Route.extend({
model: function() {
this.store.push('node', {id: 1, x: 40, y:40});
this.store.push('node', {id: 3, x: 50, y:50});
return this.store.findAll("node");
},
actions: {
move: function(x, y) {
this.store.findRecord('node', 1).then(
function(v) {
v.set("x", x); v.set("y", y);
});
}
}
});
我通过模板指令将模型传递给我的组件。
{{node-comp data=model}}
现在,我想要得到的组件中的通知,在模型的变化值(即在我的例子行动“搬家”被称为)。我目前的方法如下所示:
export default Ember.Component.extend({
rerender: function() {
console.log("rerender called");
}.observes("[email protected]")
};
我试过'data。[]'指令和'data。@ each.x'指令。但没有导致期望的行为。注意,通知组件的模板,即模型的项目列表在“移动”调用后得到更新。
我的 '余烬-v' 输出灰烬CLI的
未来版本将不支持V4.2.0。请更新至节点0.12或io.js. 版本:1.13.8找不到守望者,回退到NodeWatcher 以获取文件系统事件。访问 http://www.ember-cli.com/user-guide/#watchman了解更多信息。 node: 4.2.0 npm:2.13.4 os:linux x64
我的组件包含d3代码。总体目标是在模型更改时更改我的d3可视化。我仍在研究是否烬是实现这一目标的正确框架。不幸的是,添加hasDirtyAttributs标志没有帮助。 – marcel
我在我的项目中获得了d3。数据可以直接绑定 - {{条形图 数据= graphData.data isLoaded = graphData.data noDataText =无数据 }} –
谢谢,但我看不出这可以帮助我,因为我试图组装一个组件原子'd3元素'。因此,我无法恢复到预制组件。 – marcel