Ember js:如何从控制器中检索底层模型

时间:2013-06-14 08:42:00

标签: javascript ember.js

我正在尝试从控制器中检索底层模型对象,以便可以保持它(我没有使用ember-data)。显而易见的方法就是:

controller.get('content');

但这不起作用。问题可归纳如下:

controller.set("content", model);

按预期设置内容,此时

controller.get('content');

按预期工作。但是,如果我然后用其他属性装饰控制器,例如

controller.set('IamNotPartOfTheModel', false);

然后突然'内容'包括这个新属性。我希望内容保持不变,新属性只能应用于控制器本身。我知道控制器是模型的代理,所以在大多数情况下它们被视为同一个但是当然它们在需要时仍然可以分开吗?这种模式的重点是将应该存储的数据与临时数据分开。我错过了什么吗?

2 个答案:

答案 0 :(得分:0)

您的控制器需要与某种模型接口。除了某种对象引用之外,您不能将持久化模型与控制器分开。即使您不使用ember-data,您仍然需要创建对象,然后插入控制器的内容。看看Evil Trout's blog是否有没有ember-data的ember实现。这是一个很好的起点。

答案 1 :(得分:0)

要使您的显示特定属性不在模型中,只需在控制器中明确指定它们...否则控制器充当其模型的代理...只需在控制器中具有属性“iamNotPartOfTheModel”

   App.IndexController = Ember.ObjectController.extend({
     iamNotPartOfTheModel: null
   })

示例小提琴here