首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >EmberFire和嵌套数组

EmberFire和嵌套数组
EN

Stack Overflow用户
提问于 2013-12-23 01:25:55
回答 1查看 298关注 0票数 0

我正在尝试我的第一个基于成员的项目,以及整合火到它,以获得防火墙的能力。我正在为另一个项目构建一个树菜单生成器。

用于firebase数据库的json如下:

代码语言:javascript
运行
复制
    {
  "default" : {
    "_type" : "arrayObject",
    "name" : "unnamed",
    "_name" : "default",
    "menus" : {
      "Top" : {
        "menu" : {
          "2" : {
            "text" : "0-2",
            "actions" : {
              "_type" : "objectArray",
              "0" : {
                "action" : 3,
                "_type" : "object"
              }
            },
            "column" : 0,
            "color" : {
              "b" : {
                "_type" : "object"
              },
              "_type" : "objectArray",
              "g" : 0,
              "a" : {
                "_type" : "object"
              },
              "r" : 0
            },
            "_type" : "object",
            "visibility" : "hidden",
            "page" : 0,
            "bgColor" : {
              "b" : {
                "_type" : "object"
              },
              "_type" : "objectArray",
              "g" : 208,
              "a" : {
                "_type" : "object"
              },
              "r" : 208
            },
            "row" : 2,
            "id" : 2
          },
          "5" : {
            "text" : "0-5",
            "actions" : [ {
              "action" : 3
            } ],
            "column" : 0,
            "color" : {
              "b" : 0,
              "g" : 0,
              "a" : 255,
              "r" : 0
            },
            "_type" : "object",
            "visibility" : "hidden",
            "page" : 0,
            "bgColor" : {
              "b" : 208,
              "g" : 208,
              "a" : 255,
              "r" : 208
            },
            "row" : 5,
            "id" : 5
          },
          "12" : {
            "text" : "1-3",
            "actions" : {
              "_type" : "objectArray",
              "0" : {
                "action" : 3,
                "_type" : "object"
              }
            },
            "column" : 1,
            "color" : {
              "b" : {
                "_type" : "object"
              },
              "_type" : "objectArray",
              "g" : {
                "_type" : "object"
              },
              "a" : {
                "_type" : "object"
              },
              "r" : {
                "_type" : "object"
              }
            },
            "_type" : "object",
            "visibility" : "hidden",
            "page" : 0,
            "bgColor" : {
              "b" : {
                "_type" : "object"
              },
              "_type" : "objectArray",
              "g" : {
                "_type" : "object"
              },
              "a" : {
                "_type" : "object"
              },
              "r" : {
                "_type" : "object"
              }
            },
            "row" : 3,
            "id" : 12
          },
          "15" : {
            "text" : "1-6",
            "actions" : {
              "_type" : "objectArray",
              "0" : {
                "action" : 3,
                "_type" : "object"
              }
            },
            "column" : 1,
            "color" : {
              "b" : {
                "_type" : "object"
              },
              "_type" : "objectArray",
              "g" : {
                "_type" : "object"
              },
              "a" : {
                "_type" : "object"
              },
              "r" : {
                "_type" : "object"
              }
            },
            "_type" : "object",
            "visibility" : "hidden",
            "page" : 0,
            "bgColor" : {
              "b" : {
                "_type" : "object"
              },
              "_type" : "objectArray",
              "g" : {
                "_type" : "object"
              },
              "a" : {
                "_type" : "object"
              },
              "r" : {
                "_type" : "object"
              }
            },
            "row" : 6,
            "id" : 15
          },
          "8" : {
            "text" : "0-8",
            "actions" : {
              "_type" : "objectArray",
              "0" : {
                "action" : 3,
                "_type" : "object"
              }
            },
            "column" : 0,
            "color" : {
              "b" : {
                "_type" : "object"
              },
              "_type" : "objectArray",
              "g" : {
                "_type" : "object"
              },
              "a" : {
                "_type" : "object"
              },
              "r" : {
                "_type" : "object"
              }
            },
            "_type" : "object",
            "visibility" : "hidden",
            "page" : 0,
            "bgColor" : {
              "b" : {
                "_type" : "object"
              },
              "_type" : "objectArray",
              "g" : {
                "_type" : "object"
              },
              "a" : {
                "_type" : "object"
              },
              "r" : {
                "_type" : "object"
              }
            },
            "row" : 8,
            "id" : 8
          },
          "_type" : "objectArray",
          "7" : {
            "text" : "0-7",
            "actions" : [ {
              "action" : 3
            } ],
            "column" : 0,
            "color" : {
              "b" : 0,
              "g" : 0,
              "a" : 255,
              "r" : 0
            },
            "_type" : "object",
            "visibility" : "visible",
            "page" : 0,
            "bgColor" : {
              "b" : 208,
              "g" : 208,
              "a" : 255,
              "r" : 208
            },
            "row" : 7,
            "id" : 7
          },
          "17" : {
            "text" : "1-8",
            "actions" : {
              "_type" : "objectArray",
              "0" : {
                "action" : 3,
                "_type" : "object"
              }
            },
            "column" : 1,
            "color" : {
              "b" : {
                "_type" : "object"
              },
              "_type" : "objectArray",
              "g" : {
                "_type" : "object"
              },
              "a" : {
                "_type" : "object"
              },
              "r" : {
                "_type" : "object"
              }
            },
            "_type" : "object",
            "visibility" : "hidden",
            "page" : 0,
            "bgColor" : {
              "b" : {
                "_type" : "object"
              },
              "_type" : "objectArray",
              "g" : {
                "_type" : "object"
              },
              "a" : {
                "_type" : "object"
              },
              "r" : {
                "_type" : "object"
              }
            },
            "row" : 8,
            "id" : 17
          },
          "1" : {
            "text" : "0-1",
            "actions" : {
              "_type" : "objectArray",
              "0" : {
                "action" : 3,
                "_type" : "object"
              }
            },
            "column" : 0,
            "color" : {
              "b" : {
                "_type" : "object"
              },
              "_type" : "objectArray",
              "g" : 0,
              "a" : {
                "_type" : "object"
              },
              "r" : 0
            },
            "_type" : "object",
            "visibility" : "hidden",
            "page" : 0,
            "bgColor" : {
              "b" : {
                "_type" : "object"
              },
              "_type" : "objectArray",
              "g" : 208,
              "a" : {
                "_type" : "object"
              },
              "r" : 208
            },
            "row" : 1,
            "id" : 1
          },
          "4" : {
            "text" : "0-4",
            "actions" : {
              "_type" : "objectArray",
              "0" : {
                "action" : 3
              }
            },
            "column" : 0,
            "color" : {
              "b" : 0,
              "g" : 0,
              "a" : 255,
              "r" : 0
            },
            "_type" : "object",
            "visibility" : "hidden",
            "page" : 0,
            "bgColor" : {
              "b" : 208,
              "g" : 208,
              "a" : 255,
              "r" : 208
            },
            "row" : 4,
            "id" : 4
          },
          "11" : {
            "text" : "1-2",
            "actions" : {
              "_type" : "objectArray",
              "0" : {
                "action" : 3,
                "_type" : "object"
              }
            },
            "column" : 1,
            "color" : {
              "b" : {
                "_type" : "object"
              },
              "_type" : "objectArray",
              "g" : {
                "_type" : "object"
              },
              "a" : {
                "_type" : "object"
              },
              "r" : {
                "_type" : "object"
              }
            },
            "_type" : "object",
            "visibility" : "hidden",
            "page" : 0,
            "bgColor" : {
              "b" : {
                "_type" : "object"
              },
              "_type" : "objectArray",
              "g" : {
                "_type" : "object"
              },
              "a" : {
                "_type" : "object"
              },
              "r" : {
                "_type" : "object"
              }
            },
            "row" : 2,
            "id" : 11
          },
          "14" : {
            "text" : "1-5",
            "actions" : {
              "_type" : "objectArray",
              "0" : {
                "action" : 3,
                "_type" : "object"
              }
            },
            "column" : 1,
            "color" : {
              "b" : {
                "_type" : "object"
              },
              "_type" : "objectArray",
              "g" : {
                "_type" : "object"
              },
              "a" : {
                "_type" : "object"
              },
              "r" : {
                "_type" : "object"
              }
            },
            "_type" : "object",
            "visibility" : "hidden",
            "page" : 0,
            "bgColor" : {
              "b" : {
                "_type" : "object"
              },
              "_type" : "objectArray",
              "g" : {
                "_type" : "object"
              },
              "a" : {
                "_type" : "object"
              },
              "r" : {
                "_type" : "object"
              }
            },
            "row" : 5,
            "id" : 14
          },
          "6" : {
            "text" : "0-6",
            "actions" : [ {
              "action" : 3
            } ],
            "column" : 0,
            "color" : {
              "b" : 0,
              "g" : 0,
              "a" : 255,
              "r" : 0
            },
            "_type" : "object",
            "visibility" : "visible",
            "page" : 0,
            "bgColor" : {
              "b" : 208,
              "g" : 208,
              "a" : 255,
              "r" : 208
            },
            "row" : 6,
            "id" : 6
          },
          "0" : {
            "text" : "0-0",
            "actions" : {
              "_type" : "objectArray",
              "0" : {
                "action" : 3,
                "_type" : "object"
              }
            },
            "column" : 0,
            "color" : {
              "b" : {
                "_type" : "object"
              },
              "_type" : "objectArray",
              "g" : {
                "_type" : "object"
              },
              "a" : {
                "_type" : "object"
              },
              "r" : 0
            },
            "_type" : "object",
            "visibility" : "hidden",
            "page" : 0,
            "bgColor" : {
              "b" : {
                "_type" : "object"
              },
              "_type" : "objectArray",
              "g" : {
                "_type" : "object"
              },
              "a" : {
                "_type" : "object"
              },
              "r" : 208
            },
            "row" : 0,
            "id" : "0"
          },
          "9" : {
            "text" : "1-0",
            "actions" : {
              "_type" : "objectArray",
              "0" : {
                "action" : 3,
                "_type" : "object"
              }
            },
            "column" : 1,
            "color" : {
              "b" : {
                "_type" : "object"
              },
              "_type" : "objectArray",
              "g" : {
                "_type" : "object"
              },
              "a" : {
                "_type" : "object"
              },
              "r" : {
                "_type" : "object"
              }
            },
            "_type" : "object",
            "visibility" : "hidden",
            "page" : 0,
            "bgColor" : {
              "b" : {
                "_type" : "object"
              },
              "_type" : "objectArray",
              "g" : {
                "_type" : "object"
              },
              "a" : {
                "_type" : "object"
              },
              "r" : {
                "_type" : "object"
              }
            },
            "row" : 0,
            "id" : 9
          },
          "16" : {
            "text" : "1-7",
            "actions" : {
              "_type" : "objectArray",
              "0" : {
                "action" : 3,
                "_type" : "object"
              }
            },
            "column" : 1,
            "color" : {
              "b" : {
                "_type" : "object"
              },
              "_type" : "objectArray",
              "g" : {
                "_type" : "object"
              },
              "a" : {
                "_type" : "object"
              },
              "r" : {
                "_type" : "object"
              }
            },
            "_type" : "object",
            "visibility" : "hidden",
            "page" : 0,
            "bgColor" : {
              "b" : {
                "_type" : "object"
              },
              "_type" : "objectArray",
              "g" : {
                "_type" : "object"
              },
              "a" : {
                "_type" : "object"
              },
              "r" : {
                "_type" : "object"
              }
            },
            "row" : 7,
            "id" : 16
          },
          "3" : {
            "text" : "0-3",
            "actions" : {
              "_type" : "objectArray",
              "0" : {
                "action" : 3,
                "_type" : "object"
              }
            },
            "column" : 0,
            "color" : {
              "b" : 0,
              "_type" : "objectArray",
              "g" : 0,
              "a" : {
                "_type" : "object"
              },
              "r" : 0
            },
            "_type" : "object",
            "visibility" : "hidden",
            "page" : 0,
            "bgColor" : {
              "b" : 208,
              "_type" : "objectArray",
              "g" : 208,
              "a" : {
                "_type" : "object"
              },
              "r" : 208
            },
            "row" : 3,
            "id" : 3
          },
          "10" : {
            "text" : "1-1",
            "actions" : {
              "_type" : "objectArray",
              "0" : {
                "action" : 3,
                "_type" : "object"
              }
            },
            "column" : 1,
            "color" : {
              "b" : {
                "_type" : "object"
              },
              "_type" : "objectArray",
              "g" : {
                "_type" : "object"
              },
              "a" : {
                "_type" : "object"
              },
              "r" : {
                "_type" : "object"
              }
            },
            "_type" : "object",
            "visibility" : "hidden",
            "page" : 0,
            "bgColor" : {
              "b" : {
                "_type" : "object"
              },
              "_type" : "objectArray",
              "g" : {
                "_type" : "object"
              },
              "a" : {
                "_type" : "object"
              },
              "r" : {
                "_type" : "object"
              }
            },
            "row" : 1,
            "id" : 10
          },
          "13" : {
            "text" : "1-4",
            "actions" : {
              "_type" : "objectArray",
              "0" : {
                "action" : 3,
                "_type" : "object"
              }
            },
            "column" : 1,
            "color" : {
              "b" : {
                "_type" : "object"
              },
              "_type" : "objectArray",
              "g" : {
                "_type" : "object"
              },
              "a" : {
                "_type" : "object"
              },
              "r" : {
                "_type" : "object"
              }
            },
            "_type" : "object",
            "visibility" : "hidden",
            "page" : 0,
            "bgColor" : {
              "b" : {
                "_type" : "object"
              },
              "_type" : "objectArray",
              "g" : {
                "_type" : "object"
              },
              "a" : {
                "_type" : "object"
              },
              "r" : {
                "_type" : "object"
              }
            },
            "row" : 4,
            "id" : 13
          }
        },
        "_type" : "object"
      },
      "_type" : "objectArray"
    },
    "id" : "default"
  },
  "_type" : "objectArray",
  "app2" : {
    "_type" : "arrayObject",
    "name" : "app2",
    "_name" : "app2",
    "menus" : {
      "Top" : [ {
        "text" : "0-0"
      } ],
      "_type" : "objectArray"
    }
  }
}

无论如何,我已经成功地使用了emberFire的叉,它在初始数组中提供了一个emberFire对象。(https://github.com/ember-meteor/emberFire/blob/refactor/emberfire-latest.js)

这是可行的。

我有一个嵌入式数组,我将其转换为另一个emberFire ObjectArray,并且

我的代码:https://github.com/jondthompson/menutest

我使用了与原始ObjectArray创建类似的行为,为嵌套在'ssApp‘中的'ssMenus’数组创建了第二个数组,但它似乎没有填充来自Firebase的适当数据,路由器甚至没有使用空数组触发。

正确的行为是当你点击一个“应用程序”,应用程序的名字出现在底部(有效!),菜单的名字出现在它旁边(没有)。

不管怎样,救命,求你了!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-12-23 17:04:11

我想通了。

  • 我在手工写孩子的火柴参考。我想出了如何通过原始的firebase对象来完成这个任务。
  • 我不是将子引用封装在一个firebase对象中,而是试图将它注入到它不属于的地方。
  • 我试图创造第二条路线,但我不需要它。

我可能也错过了别的东西。我认为自己是一个初级程序员,所以这是在扩展我的能力。

我原来的AppController..。

代码语言:javascript
运行
复制
App.SsAppController = Ember.ObjectController.extend({
  needs: ["selected_ssApp", 'ssMenus'],

  selected: function(){
    return this.get('controllers.selected_ssApp.model') === this.get('model');
  }.property('controllers.selected_ssApp.model', 'model'),

  actions: {
    select: function(){
      var model = this.get('model');
      var menuList = this.get('controllers.ssMenus')
      Ember.debug("MenuList: "+ menuList);
      this.set('controllers.selected_ssApp.model', model);
      menuList.set('ref', new Firebase("https://menutest.firebaseio.com/jt-test/"+model.content._name+"/menus"));

    }
  }
});

我的新的和改进的(阅读:工作)MenuController。

代码语言:javascript
运行
复制
App.SsAppController = Ember.ObjectController.extend({
  needs: ["selected_ssApp", 'ssMenus'],
    menus: function(){
        var model = this.get('model'),
        ref = model.get('ref');

        return EmberFire.ObjectArray.create({ ref: ref.child('menus')});
    },
  selected: function(){
    return this.get('controllers.selected_ssApp.model') === this.get('model');
  }.property('controllers.selected_ssApp.model', 'model'),
  actions: {
    select: function(){
      var model = this.get('model'),
      menusObj = model.get('menus');
      this.set('controllers.selected_ssApp.model', model);

        this.set('controllers.ssMenus.content', this.menus());
    }
  }
});
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20735878

复制
相关文章

相似问题

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