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}}等操作。我会进一步研究。这听起来像是最好的选择,本质上与@直觉像素的解决方案相同。无法解决必须在模型和控制器中定义字段的问题。