使用Ember.Copy

时间:2015-06-08 18:37:32

标签: ember.js

我刚刚从最新的Tuts +教程' EmberJS框架基础知识'中开始学习关于Ember的知识。 (2015年5月6日发布)。本教程使用' Ember入门套件'作为基础,逐步增加更多功能。

我遇到了动作问题"创建"在控制器中处理提交的输入值以添加到数组中。具体来说,行> var newProject = Ember.copy(this.content);'似乎导致了这个问题。

这是行动代码:

`create: function(){

    var newProject = Ember.copy(this.content);
    this.get('controllers.projects').addObject(newProject);
    this.transitionToRoute('projects');

}`

到目前为止,完整的代码在这里:http://jsfiddle.net/ralbion/y2gr9r3r/13/ 点击'转到项目' - > '添加新项目' - > '创建'看效果。

除了'为什么它不起作用?!'我的问题是:

  • 是否弃用了Ember.Copy(this.content)?
  • 究竟是什么' this.content'?

请注意,如果我使用

var newProject = {id: App.projects.length+1, title: this.title, about: this.about};

该行动使其工作正常。

请注意,我的代码不是教程中显示的内容的副本,但它基本上是相同的(我认为!)

希望你能提前帮助和感谢。

1 个答案:

答案 0 :(得分:0)

工作jsbin在这里:http://jsbin.com/lisetaxewu/1/edit?html,js,output

答案和更改:

1)Controller中的contentmodel的旧别名,现在已过时,但有效。所以最好写this.model而不是this.content

2)复制工作也是如此

3)由于您使用Controller(这很好),您应该在模板中写{{model.title}}而不是{{title}}。不同之处在于{{title}}是控制器属性title,如{{model}}是控制器属性model{{model.title}}model属性title 。详情请http://emberjs.com/deprecations/v1.x/#toc_objectcontroller