我的router.js:
Router.map(function() {
this.route('portfolio', function() {
this.route('company', { path:'/company/:id' });
});
}
在我的路线/ portfolio / company.js中:
import Ember from 'ember';
export default Ember.Route.extend({
model: function(params) {
var companyId = params.id;
return new Ember.RSVP.hash({
company: Ember.$.ajax({ url: '/api/company/'+companyId, dataType: "json", type: 'GET' })
}).then(function(message) {
return message;
}, function(error) {
console.log( error );
});
}
});
当我导航到app/portfolio/company/1
时,我的路线和模板正常加载,但出于某种原因,当我导航到该路线时,Ember不会加载模型(没有错误,但{{model}}变量确实没有填入模板)。只有当我刷新页面时,Ember才会加载模型?!我现在有点困惑......
编辑:添加了缺失的参数并添加了更好的描述
答案 0 :(得分:0)
我认为在你的模板或控制器中你正在使用这样的模型
model.company
将其替换为model
,并移除无关的RSVP.hash
因为Ember.$.ajax
已经返回了模型钩子可以处理的promise
所以在ES6(ember-cli支持它)中你的模型钩子看起来应该是这样的
model({ id }) {
return Ember.$.ajax('/api/company/' + id);
}
上面的内容一切都应该有效,发生了什么我认为你只是model
传递给{{link-to}}
,而你的控制器或模板期待model.company
这样做会破坏事情