Ember:加载路线时出错

时间:2014-04-02 18:20:28

标签: ember.js

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

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

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

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

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

应用程序/ 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;

应用程序/路由/ 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;

应用程序/视图/ compare.js:

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

1 个答案:

答案 0 :(得分:0)

有些东西覆盖了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;