我正在将模型呈现为父模板,如下所示:
{{render "teacher" teacher}}
这是控制器:
App.TeacherController = Ember.ObjectController.extend(App.EditableModelMixin, {
actions: {
saveTypes: function() {
if (this.get('model')) console.log('Exists');
console.log(this.get('model'));
console.log(this.get('model').get('isFulfilled'));
this.get('model').save();
}
}
});
这是调用此方法时的输出:
Exists
Class {isFulfilled: true, toString: function, constructor: function, reason: null, isPending: undefined…}
true
Uncaught TypeError: Object [object Object] has no method 'save'
这种做事方式对我来说没有任何问题。只有当我使用render
时才会发生这种情况。
更新
以下是我在Ember Inspector中查看TeacherController
的屏幕截图:
另一个只是我的视图层次结构:
答案 0 :(得分:2)
看起来好像该模型是PromiseObject(来自异步映射)。 Promise对象是Ember.ObjectProxy的扩展,它将属性调用代理到真实模型(如果存在),但方法不被代理。
var modelPromise = this.get('model');
modelPromise.then(function(actualModel){
actualModel.save();
});