2

我正在尝试创建一个简单的嵌套视图。“子”视图是 Ember.Select。“选择”参数需要来自父级,我无法让它工作。如何做到这一点?

<script type="text/x-handlebars" data-template-name="application">
    {{view App.SelectView contentBindingForSelect="App.names"}}
</script>

<script type="text/x-handlebars" data-template-name="select-view">
    <h1>In SelectView</h1>
    {{view view.childSelectView contentBinding="view.contentBindingForSelect"}}
</script>


window.App = Ember.Application.create();

App.names = ["Yehuda", "Tom"];

App.ApplicationView = Ember.View.extend({
    templateName: 'application',
});

App.SelectView = Ember.View.extend({
    templateName: 'select-view',  
    childSelectView: Ember.Select
});

JSFiddle 示例:http: //jsfiddle.net/kRwcU/1/

4

2 回答 2

1

我发现了问题......我错过了 Ember 中“约定”的这一部分:“contentBindingForSelect”作为名称不起作用。“Binding”一词需要保留在末尾,例如:“contentForSelectBinding”。我已经更正了 JSFiddle。它现在工作正常。

http://jsfiddle.net/kRwcU/4/

<script type="text/x-handlebars" data-template-name="application">
    <h1>Hello from Ember.js</h1>
    {{view App.SelectView contentForSelectBinding="App.names"}}
</script>

<script type="text/x-handlebars" data-template-name="select-view">
    <h1>In SelectView</h1>
    {{view view.childSelectView contentBinding="view.contentForSelect"}}
</script>
于 2013-02-18T15:11:00.813 回答
0

我刚刚开始在 ember.js 中使用,但是如果您检查当前为空的 select 元素,您会看到 ember 实际上已在 select 标记内呈现了您的视图 html。这显然是垃圾 html,因此无法正确呈现。

我怀疑正确的答案是您不想以这种方式扩展 ember.select 来实现所需的功能。

于 2013-02-18T14:51:57.817 回答