【问题标题】:Returning model in Ember在 Ember 中返回模型
【发布时间】:2014-10-07 03:26:51
【问题描述】:

直到现在我总是从 Ember 路由的模型钩子中返回一个对象:

model: function(params) {
    var data = {};

    $.ajax({...}).then(function(res) {
        data.first = res.first
    });

    $.ajax({...}).then(function(res) {
       data.second = res.second
    });

    return data;
}

每次我需要在不止一个步骤中加载模型时(比如我需要在同一条路径中加载两个或多个模型时),我都会使用类似上述的方法

现在,使用 ember-cli(在我使用 yeoman 之前,不知道这是否重要)尝试将对象作为模型返回时,出现错误:

import Ember from 'ember';

export default Ember.Route.extend({
    model: function() {

        var data = {};

        data.one = ['example1'];
        data.two = ['example2'];
        return data;
    }
});

错误:

Error while processing route: index Assertion Failed: ArrayProxy expects an Array or Ember.ArrayProxy, but you passed object

谁能告诉我为什么会出现这个错误?

【问题讨论】:

  • 您是否对控制器进行了其他更改?
  • 不,控制器是空的;这只是 ember-cli 的第一次尝试;我只有申请模板,这是申请路线
  • 默认控制器有没有可能是从ArrayController扩展而来的?尝试放入一个从 ObjectController 扩展的虚拟对象。
  • 是的,你真是个天才!! :)

标签: ember.js


【解决方案1】:

默认控制器是从ArrayController 扩展而来的。尝试从ObjectController 定义您自己的扩展。

【讨论】:

    猜你喜欢
    • 2015-10-17
    • 2013-09-21
    • 2018-06-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多