使用ember渲染助手时无法保存模型

时间:2013-12-30 19:48:21

标签: javascript ember.js handlebars.js

我正在将模型呈现为父模板,如下所示:

{{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的屏幕截图:

TeacherController

另一个只是我的视图层次结构:

View

1 个答案:

答案 0 :(得分:2)

看起来好像该模型是PromiseObject(来自异步映射)。 Promise对象是Ember.ObjectProxy的扩展,它将属性调用代理到真实模型(如果存在),但方法不被代理。

   var modelPromise = this.get('model');
   modelPromise.then(function(actualModel){
     actualModel.save();
   });