当切换插座型号时,插座中的Ember {{control}}把手辅助器停止工作

时间:2013-10-23 18:12:40

标签: ember.js

我有以下路线图:

App.Router.map(function() {
  this.resource("data", {path: "data/:data_id"});
});

我的应用程序模型具有如下树状结构:

[
  {
    id:0,
    text:"John",
    children:[
      {
        id:2,
        text:"Max"
      },
      {
        id:4,
        text:"Mireille",
        children: [
          {
            id:5,
            text:"Michael"
          }
        ]
      }
    ]
  },
  {
    id:1,
    text:"Alex",
    children: [
      {
        id:3,
        text:"Laetitia"
      }
    ]
  }
]

我想在我的应用程序模板中显示我的树的主要“父母”(深度为零)作为列表(所以John和Alex在这里)。单击John或Alex时,我们将转换为名为“data”的新路径,将“this”作为模型传递。在数据路径中,我想显示树的其余部分:所以如果我点击John,我希望数据模板向我显示他所有孩子的嵌套列表。由于树的深度是不确定的,我使用实验手柄{{control}}帮助器以递归方式生成嵌套列表。

当我点击John或Alex时,它工作正常。但是当我想切换到另一个(所以通过点击另一个名称更改传递给“数据”路径的模型),然后我得到奇怪的消息错误。首先我得到:

Uncaught TypeError: Cannot call method 'lookupFactory' of undefined 

然后,如果我一直试图点击,我得到:

Uncaught Error: Something you did caused a view to re-render after it rendered but before it was inserted into the DOM. 

可以在this jsbin中找到展示此问题的示例应用。

2 个答案:

答案 0 :(得分:1)

可能不是你想要的答案但是,看起来你正在使用控件助手,这是实验性的,不是公共API的一部分,并且已经从代码库中删除了:

https://github.com/emberjs/ember.js/commit/86eecd7ef7cdc7d2ea6f77b3a726b293292ec55d

如果你可以在没有控制助手的情况下复制,我很乐意诊断出这个问题。

答案 1 :(得分:0)

正如user615276所指出的,控制助手已从Ember代码库中删除。我只是使用视图解决了这个问题。请参阅this jsbin