无法向 Ember.Select 添加布局

Can't add a layout to Ember.Select

我正在尝试创建自定义 CSS 下拉菜单,这需要我向 Select 视图添加包装器 class。我试图通过重新打开 Ember.Select 来添加代码,但该行为未按预期工作。

在我的 JS 中,我定义了这个:

Ember.Select.reopen({
  layout: Ember.Handlebars.compile("<div class='select-layout'>{{yield}}</div>") 
});

在我的模板中,我有:

{{view "select" content=model}}

然而,我的结果 HTML 是:

<select id="ember257" class="ember-view ember-select">
  <option id="ember270" class="ember-view" value="red">red</option>
  <option id="ember273" class="ember-view" value="yellow">yellow</option>
  <option id="ember276" class="ember-view" value="blue">blue</option>  
</select>

我为此设置了一个 JSFiddle,可以在这里找到: http://jsfiddle.net/rbn6qa9x/

如果有什么技巧,请赐教

如果您不需要额外的 div,您可以使用类名 属性:

    classNames: ['select-layout']

视图已出,组件已入:

http://emberjs.jsbin.com/ciwifajaze/1/

只需定义您的模板,在这种情况下不需要 yield:

<script type="text/x-handlebars" data-template-name="components/custom-select">
    <div class='select-layout'>{{view "select" content=content}}</div>
</script>

因为你没有做任何需要 JS 的事情,你可以只使用 ember 会在幕后自动为你创建的组件对象。