渲染多个 EmberJS 视图时断言失败

Posted

技术标签:

【中文标题】渲染多个 EmberJS 视图时断言失败【英文标题】:Assertion Fails while Rendering Multiple EmberJS Views 【发布时间】:2013-08-22 11:02:53 【问题描述】:

我多次使用view 帮助器,以便每次渲染相同的模板但使用不同的参数,主要是布尔值作为选项标志。

但是,每当我渲染超过 1 个相同的 view 时,我都会收到以下错误:

Assertion failed: Attempted to register a view with an id already in use: null

我的元素标签没有“ember id”,例如id="ember224".

我在 JSBin 中复制了这个问题:

请注意,在 JSBin 中,您将无法看到控制台中记录的错误,因为 不管什么原因。一个简单的复制粘贴到 http://www.embersandbox.com/ 可以打开控制台查看 错误本身。

http://jsbin.com/UHOh/1/edit?html,js,output

有人知道为什么会这样吗?如果是这样,会不会有问题?目前其他一切都在正常工作,所以我倾向于忽略它。

谢谢!

【问题讨论】:

【参考方案1】:

您正在重写 Ember.View 的 init() 方法,而不是调用 this._super()。这会导致视图无法正确初始化,从而导致您的视图元素缺少 id 属性(例如 id="ember224")。

下面是原始 JSBin 的链接,其中添加了调用 this._super() 的 MyCustomView.init()。您会发现视图元素现在具有 id 属性。

http://jsbin.com/UHOh/11/edit?html,js,output

【讨论】:

以上是关于渲染多个 EmberJS 视图时断言失败的主要内容,如果未能解决你的问题,请参考以下文章

如何在 EmberJS / Ember Data 中使用单个路由的多个模型?

在 emberjs 中重新渲染视图

Emberjs:从子视图中解析表单数据

由于 rootElement,ember 验收测试错误“断言失败”

emberjs中渲染和视图关键字的区别?

EmberJS 从控制器加载视图而不是路由