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

标签 javascript ember.js handlebars.js

我将模型渲染到父模板中,如下所示:

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

TeacherController

还有我的 View 层次结构:

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/

相关文章:

javascript - 如何将html表单导出到csv文件

javascript - Vue.js,下载后动态显示图像

node.js - 如何将我的 Node 脚本作为 ember 的构建任务之一运行?

properties - 我的 Ember Controller 的属性确实得到了回显

javascript - 访问模板 EmberJS 中的参数

javascript - jquery mouseover动态p标签扩展

javascript - RxJS 5.5 错误 : take is not a function. 链式函数问题

coffeescript - Coffeescript中switch case语句内的范围

ember.js - EmberJs 作为具有外部 API 的 PhoneGap

javascript - 将 Moustache/Handlebars 模板与 HAML 混合使用是个好主意吗?