gpt4 book ai didi

javascript - Ember 在模型上找不到 find() 方法

转载 作者:数据小太阳 更新时间:2023-10-29 06:02:57 25 4
gpt4 key购买 nike

Ember 似乎找不到我在属性模型上实现的 findAll()find() 方法。以下是我收到的错误:

TypeError: App.Property.findAll is not a function

Error: assertion failed: Expected App.Property to implement `find` for use in 'root.property' `deserialize`. Please implement the `find` method or overwrite `deserialize`.

我的路由器是这样设置的:

App.Router = Ember.Router.extend({
showProperty: Ember.Route.transitionTo('property'),
root: Ember.Route.extend({
home: Ember.Route.extend({
route: '/',
connectOutlets: function(router) {
router.get('applicationController').connectOutlet('home', App.Property.findAll());
}
}),
property: Ember.Route.extend({
route: '/property/:property_id',
connectOutlets: function(router, property) {
router.get('applicationController').connectOutlet('property', property);
},
}),
})
});

这是我的模型:

App.Property = Ember.Object.extend({
id: null,
address: null,
address_2: null,
city: null,
state: null,
zip_code: null,
created_at: new Date(0),
updated_at: new Date(0),
find: function() {
// ...
},
findAll: function() {
// ...
}
});

我做错了什么?这些方法应该放在属性模型上还是放在其他地方?我应该覆盖 deserialize() 方法而不是使用 find() 吗?但即使我使用该解决方法 findAll() 仍然无法正常工作,我仍然会遇到第一个错误。

感谢您的帮助。

最佳答案

findfindAll 方法应该在 reopenClass 中声明,而不是在 extend 中声明,因为你想定义类方法,而不是实例方法。例如:

App.Property = Ember.Object.extend({
id: null,
address: null,
address_2: null,
city: null,
state: null,
zip_code: null,
created_at: new Date(0),
updated_at: new Date(0)
});

App.Property.reopenClass({
find: function() {
// ...
},
findAll: function() {
// ...
}
});

关于javascript - Ember 在模型上找不到 find() 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12060512/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com