我将模型渲染到父模板中,如下所示:
{{render "teacher" teacher}}
这是它的 Controller :
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
的屏幕截图:
还有我的 View 层次结构:
最佳答案
看起来该模型是一个 PromiseObject(来自异步映射)。 Promise 对象是 Ember.ObjectProxy 的扩展,它将代理属性调用到真实模型(如果存在),但方法不会被代理。
var modelPromise = this.get('model');
modelPromise.then(function(actualModel){
actualModel.save();
});
关于javascript - 使用 ember 渲染助手时无法保存模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20846408/