从chrome控制台更新ember fixture数据

时间:2014-06-30 04:46:16

标签: ember.js ember-data

下面是我的简单应用程序的一些部分,其中我在我的控制器中有一个功能,它过滤一些数据和一个显示它们的模板。一切都按照应有的方式工作,除非我从Chrome控制台手动更新我的灯具数据时,数据不会在模板中更新。不应该因为它与财产捆绑在一起吗?

我在Chrome控制台中要做的更新是App.Nick.FIXTURES[0]['nick'] = "new data"

//controllers/NicksController

  noNick: function() {
    return this.get('content').filterProperty('nick', null);
  }.property('content.@each.nick')

//fixtures/nick.js

App.Nick.FIXTURES = [
  {
    id: "1",
    nick: "test1",
  },
  {
    id: "2",
    nick: "test2",
  },
  {
    id: "3",
    nick: null,
  }
];

//templates/nicks
<ul class="nav nav-tabs nav-stacked">
  {{#each nick in nicks.noNick}}
    <li>{{nick.nick}}</li>
  {{/each}}
</ul>

1 个答案:

答案 0 :(得分:1)

您应该将这些灯具对象视为来自服务器的模拟响应,一旦收到它们就不再与实际记录挂钩。

您需要获取对记录的引用并对已在商店中加载的记录进行修改。见Ember Data: Get a Model in the Console

BTW:使用getter和setter非常重要。

var store = App.__container__.lookup('store:main');
var nick = store.find('nick', 1);
nick.set('name', 'foo');