首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >向话语中添加新功能

向话语中添加新功能
EN

Stack Overflow用户
提问于 2013-09-26 19:54:51
回答 1查看 340关注 0票数 0

我正在尝试在现有的代码讨论成员rails应用程序中添加一个WatchList特性

我添加了以下代码

代码语言:javascript
复制
 Discourse.Route.buildRoutes(function() {
    var router = this;

    this.resource('watchLists', { path: '/watch_lists' }, function() {
        this.resource('watchList', {path: ':watch_list_id'});
     });
  });

在ember控制器中

代码语言:javascript
复制
 Discourse.WatchListsController = Discourse.ObjectController.extend({});

在ember模型中

代码语言:javascript
复制
   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中

代码语言:javascript
复制
   Discourse.WatchListsView = Ember.View.extend({});

在ember路由js中

代码语言:javascript
复制
     Discourse.WatchListsRoute = Discourse.Route.extend({
         model: function() {
            return Discourse.WatchList.find();   
         }
    });

当我渲染handlebars模板时,我得到了一个WatchListsController对象,其中包含了我们从ajax中获得的数据。

有谁能指出我哪里做错了吗?

EN

回答 1

Stack Overflow用户

发布于 2013-09-27 06:02:50

我看到了两个可能的问题。

首先,您可能希望WatchListsController扩展Discourse.ArrayController,而不是Discourse.ObjectController

其次,在您发布的示例代码中,reopen块不是有效的JavaScript。我数到四个{,但只有两个}。你可能想要这样的东西:

代码语言: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);
      }
    });
  }
});
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19027567

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档