【问题标题】:Ember: Error while loading routeEmber:加载路线时出错
【发布时间】:2014-04-02 18:20:27
【问题描述】:

我正在创建一个视图来显示来自 API 端点的 JSON 数据,例如 www.example.com/api/compare_segments?338,340

我需要在我的应用程序中显示该数据,网址为 www.myapp.com/compare/338,340,但我只得到一个空白页和一条错误消息:

“断言失败:加载路由时出错:错误:声明的计算属性没有属性函数”

当我在路由文件中注释掉模型钩子时,它会加载正确的模板(当前只显示任意填充文本。) 当模型钩子没有被注释掉时,它只显示空白屏幕和错误信息。

任何想法为什么模板无法加载以及如何解决错误消息?

app/router.js:

var Router = Ember.Router.extend(); // ensure we don't share routes between all Router instances

Router.map(function() {
  this.resource('compare', { path: "compare/:ids"} );
});

export default Router;

app/routes/compare.js:

var CompareRoute = Ember.Route.extend({
  model: function(params) {
    return $.ajax({
      url:('/api/compare_segments'+params.ids),
      method: 'get',
      dataType: 'json',
      data: JSON.stringify,
      accepts: 'json'
    }).then(null, function() {
      return { msg: "Recovered from rejected promise"};
    });
  },
});

export default CompareRoute;

app/views/compare.js:

export default Ember.View.extend({
  templateName: 'compare',
});

【问题讨论】:

    标签: ember.js


    【解决方案1】:

    有些东西覆盖了 ajax 调用,但是通过使用 .getJSON() 来调用 .ajax() 来解决这个问题。

    在 app/routes/compare.js 中:

    var CompareRoute = Ember.Route.extend({
      model: function(params) {
        return $.getJSON('/api/compare_segments?' + params.ids).then(function(payload) {
          return payload;
        })
    });
    
    export default CompareRoute;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-03-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多