目前,如果我们将视图定义为{{#view App.myView}}
,则ember/handlebars会将视图元素包装在<div id="ember-1234" class='ember-view'>
内。Ember JS/Handlebars查看帮手
有没有办法阻止它?
目前,如果我们将视图定义为{{#view App.myView}}
,则ember/handlebars会将视图元素包装在<div id="ember-1234" class='ember-view'>
内。Ember JS/Handlebars查看帮手
有没有办法阻止它?
你可能要设置标记名“”。
App.MyView = Em.View.extend({
tagName: ''
});
至少它停止包裹内容。
我假设你正在谈论的不是可定制的'ember-view'类(元素类型可定制归功于tagName
属性......)。实际上,Ember后来使用这个类在文档上注册(once!)一个事件监听器,以便将事件分派给JS视图。
我不介意这会更简单,以避免使用这个类。必须找到另一种方式来选择所有的烬的控制元素,但我不知道如何。
见source,@行117
如果您想自定义视图元素的ID,你可以使用:
{{#view App.myView id="my-id"}}
但它仍然包裹在一个div里面,当它生成时。我想摆脱包装股利。 – 2012-03-16 06:18:08
所以你想要的不是一个视图...你能详细说明一下你的代码示例吗?你的目标是什么?也许你可以在没有视图的情况下包含你的内容。 – 2012-03-16 06:24:18
我经常觉得我的意见包装。例如,如果初始给定的HTML代码:
<div class="item"><p>my stuff></p></div>
然后,我创建与标记名属性为“DIV”(这是默认值),和类名属性为“项目”的图。这将使得,在适当的车把模板:
{#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”属性(之前创建())。 (@see source code)
如果我理解你正确,你想实现类似jQuery的replaceWith
?当我的合并请求合并时,您可以在Ember.js中使用它:https://github.com/emberjs/ember.js/pull/574。
其实,我是说myView会像这样生成
添加了另一个回复... – 2012-03-16 06:14:14