我正在尝试在现有的代码讨论成员rails应用程序中添加一个WatchList特性
我添加了以下代码
Discourse.Route.buildRoutes(function() {
var router = this;
this.resource('watchLists', { path: '/watch_lists' }, function() {
this.resource('watchList', {path: ':watch_list_id'});
});
});在ember控制器中
Discourse.WatchListsController = Discourse.ObjectController.extend({});在ember模型中
Discourse.WatchList = Discourse.Model.extend({});
Discourse.WatchList.reopenClass({
find: function() {
jQuery.getJSON("watch_lists").then(function(json) {
var watch_lists = json.watch_lists.map(function(attrs) {
return Discourse.WatchList.create(attrs);
});
});在ember视图js中
Discourse.WatchListsView = Ember.View.extend({});在ember路由js中
Discourse.WatchListsRoute = Discourse.Route.extend({
model: function() {
return Discourse.WatchList.find();
}
});当我渲染handlebars模板时,我得到了一个WatchListsController对象,其中包含了我们从ajax中获得的数据。
有谁能指出我哪里做错了吗?
发布于 2013-09-27 06:02:50
我看到了两个可能的问题。
首先,您可能希望WatchListsController扩展Discourse.ArrayController,而不是Discourse.ObjectController。
其次,在您发布的示例代码中,reopen块不是有效的JavaScript。我数到四个{,但只有两个}。你可能想要这样的东西:
Discourse.WatchList.reopenClass({
find: function() {
return jQuery.getJSON("watch_lists").then(function(json) {
return json.watch_lists.map(function(attrs) {
return Discourse.WatchList.create(attrs);
}
});
}
});https://stackoverflow.com/questions/19027567
复制相似问题