繁体   English   中英

Ember JS / Handlebars查看助手

[英]Ember JS/Handlebars view helper

目前,如果我们将视图定义为{{#view App.myView}} ,则ember / handlebars会将视图元素包装在<div id="ember-1234" class='ember-view'>

有办法阻止这个吗?

您可能希望将tagName设置为''。

App.MyView = Em.View.extend({
    tagName: ''
});

至少它会停止包裹内部内容。

如果要自定义视图元素的id,可以使用:

{{#view App.myView id="my-id"}}

我通常认为我的观点是包装。 例如,如果初始给定的html代码是:

<div class="item"><p>my stuff></p></div>

然后我创建一个视图,其tagName属性为“div”(默认值),classNames属性为“item”。 这将使用适当的把手模板呈现:

{#view App.myView}
    <p>my stuff></p>
{/view}

-> render as

<div id="ember-1234" class="ember-view item">
    <p>my stuff></p>
</div>

然后,如果您需要在此div上拥有正确的ID,则可以在视图类上定义“elementId”属性(在create()之前)。 (@see 源代码

我假设您正在谈论'ember-view'类,它不可自定义(由于tagName属性,元素类型可自定义...)

实际上,Ember稍后使用此类在文档上注册(一次!)一个事件监听器,以便将事件分派给JS视图。

我不介意避免使用这个类会更简单。 必须找到另一种选择所有余烬控制元素的方法,但我不知道如何。

参见source ,@ line 117。

如果我理解正确你想要实现类似jQuery的replaceWith 当我的Pull请求合并时,您可以在Ember.js中使用它: https//github.com/emberjs/ember.js/pull/574

另请参阅jQuery对象中的Create Ember View

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM