从控制器更新Ember模型

时间:2015-08-27 01:54:06

标签: javascript ember.js

目前我尝试通过在模板中放置一些按钮来加载更多数据来创建无限滚动。

贝娄是代码

index.hbs

{{#each model}}
  <p>{{name}}</p>
{{/each}}
<button {{action "addMore"}}>Add More</button>

控制器/ index.js

import Ember from 'ember';

export default Ember.ArrayController.extend({
  actions:{
    addMore: function (){
      this.get("model").push({name:"some data"});
    }
  }
});

并路由index.js

import Ember from 'ember';

export default Ember.Route.extend({
  model: function() {
    var v=[];
    return v;
  }
});

问题是,在用户点击按钮后,控制器将数据推送到模型中,但模板没有显示带有当前数据的模型(控制器将新数据推入模型后的数据)。

请帮助

感谢

1 个答案:

答案 0 :(得分:2)

您的代码中出现了一些错误/弃用的内容:

export default Ember.ArrayController.extend变为export default Ember.Controller.extend

  • {{#each model}}现在采用{{#each model as |myNameObject|}}}的形式(旧方法仍有效,但建议使用块范围),在模板中使用{{myNameObject.name}}

  • 当您使用pushObject时,您正在使用.push

JsBin演示。