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