Ember.js - 如果 URL 直接命中,处理路线时出错
Ember.js - Error while processing route if URL hit directly
我不断从单个对象(用户)的路由处理程序中收到以下错误。如果我单击 link 到 view/show 单个对象(用户),它工作正常,但是当我在这条路线的 url 刷新页面时,我不断收到此错误。
URL直接访问时报错:
/users/:user_id
控制台中的错误消息:
Error while processing route: users.show Assertion Failed: Expected an
object as `data` in a call to `push`/`update` for ember-app@model:user:,
but was undefined Error: Assertion Failed: Expected an object as `data`
in a call to `push`/`update` for ember-app@model:user: , but was undefined
app/router.js
Router.map(function() {
this.resource('users', function() {
this.route('show', { path: '/:user_id' });
});
});
app/routes/users/show.js
export default Ember.Route.extend({
model: function(params) {
console.log('show route model hook'); //Hook firing on refresh
return this.store.find('user', params.user_id);
}
});
我正在使用 Ember 1.8.1 和 Ember-Data 1.0.0-beta.12。任何帮助将不胜感激!
您的服务器可能 return JSON 不适合 /users/:id
。
如果您使用的是 RESTAdapter
,JSON return 来自服务器的内容应该类似于
user: {
id: 1,
other_attrs: '...'
}
当从用户列表中输入 ShowRoute
时,所有用户都已使用 store.find('user')
方法加载(即通过 /users
服务器请求加载),因此 return this.store.find('user', params.user_id);
不会向服务器发出请求,它只有 returns 已经加载用户。这样就没有错误了。
我不断从单个对象(用户)的路由处理程序中收到以下错误。如果我单击 link 到 view/show 单个对象(用户),它工作正常,但是当我在这条路线的 url 刷新页面时,我不断收到此错误。
URL直接访问时报错:
/users/:user_id
控制台中的错误消息:
Error while processing route: users.show Assertion Failed: Expected an
object as `data` in a call to `push`/`update` for ember-app@model:user:,
but was undefined Error: Assertion Failed: Expected an object as `data`
in a call to `push`/`update` for ember-app@model:user: , but was undefined
app/router.js
Router.map(function() {
this.resource('users', function() {
this.route('show', { path: '/:user_id' });
});
});
app/routes/users/show.js
export default Ember.Route.extend({
model: function(params) {
console.log('show route model hook'); //Hook firing on refresh
return this.store.find('user', params.user_id);
}
});
我正在使用 Ember 1.8.1 和 Ember-Data 1.0.0-beta.12。任何帮助将不胜感激!
您的服务器可能 return JSON 不适合 /users/:id
。
如果您使用的是 RESTAdapter
,JSON return 来自服务器的内容应该类似于
user: {
id: 1,
other_attrs: '...'
}
当从用户列表中输入 ShowRoute
时,所有用户都已使用 store.find('user')
方法加载(即通过 /users
服务器请求加载),因此 return this.store.find('user', params.user_id);
不会向服务器发出请求,它只有 returns 已经加载用户。这样就没有错误了。