Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ember.js/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ember.js 余烬创建对象_Ember.js - Fatal编程技术网

Ember.js 余烬创建对象

Ember.js 余烬创建对象,ember.js,Ember.js,我正试图在灰烬中创造一个新记录。过去,我常常在对象控制器上手动创建每个模型的字段,但这似乎真的是多余的。使用该代码,当我开始在文本框中输入信息时,我得到一个错误 Assertion failed: Cannot delegate set('name', t) to the 'content' property of object proxy <App.StockNewController:ember258>: its 'content' is undefined 断言失败:无法将集

我正试图在灰烬中创造一个新记录。过去,我常常在对象控制器上手动创建每个模型的字段,但这似乎真的是多余的。使用该代码,当我开始在文本框中输入信息时,我得到一个错误

Assertion failed: Cannot delegate set('name', t) to the 'content' property of object proxy <App.StockNewController:ember258>: its 'content' is undefined
断言失败:无法将集合('name',t)委托给对象代理的'content'属性:其'content'未定义

基本上,您缺少的是
应用程序中定义的一些变量。StockNewController
。 因为当模板中定义的绑定启动时,并且在备份控制器上没有定义此类属性,则会出现错误。我把它改了一点,现在错误消失了

App.StockNewController = Em.ObjectController.extend({
  name: '',
  code: '',
  description: ''
});
看这里的一个工作


如果有帮助,请告诉我。

原因是您的StockNewController扩展了Ember.ObjectController,它扩展了Ember.ObjectProxy

ObjectProxy将其所有未知属性委托给content对象,但有一个例外。 如果我们试图在代理的内容未定义的情况下设置一个新属性,我们将得到一个异常

在这里,当ObjectController的内容未定义时,尝试在其上设置name属性

简单的解决方案是在设置任何其他属性之前设置内容。这可以在模型挂钩本身中完成

App.StockNewRoute = Em.Route.extend({
  model: function() {
    return App.Stock.create();
  } 
});
为了简单起见,我为模型更新了一个普通的Ember.Object


您可以获得有关ObjectProxy的详细信息

您正在谈论的代码在您的JSFIDBLEAK中丢失,很可能它没有保存@直觉像素它现在固定了这种方法对我来说似乎是多余的。我目前有20多个属性。在未来,某些属性也将是动态的,因此硬编码不是前进的方向。是否有一种方法可以从模型对象继承字段?我假设控制器的命名应该告诉ember,控制器链接到该模型,因此足够聪明来管理字段。简单地定义一个模型和一个控制器并不能以您期望的方式链接它们,这是非常令人遗憾的。因此,解决方案是在模型和objectcontroller中定义所有字段。看起来很笨拙。你也可以在你的控制器上定义一个属性,它是你的模型的类型,然后在你的模板中引用它们,执行{{myRecord.name}}等操作。我会进一步研究。这听起来像是最好的选择,本质上与@直觉像素的解决方案相同。无法解决必须在模型和控制器中定义字段的问题。