gpt4 book ai didi

ember.js - 使用 Ember + Handlebars 在运行时动态选择 View

转载 作者:行者123 更新时间:2023-12-04 17:11:57 26 4
gpt4 key购买 nike

我正在使用 Ember、Ember Data 和 Handlebars 来显示具有多种不同类型模型的时间线。我当前的实现虽然运行正常,但似乎可以通过约定和帮助程序进行彻底改进。但是,我无法弄清楚如何使用已定义的模板。

这就是我所拥有的:

{{#view App.AccountSelectedView contentBinding="App.selectedAccountController.everythingSorted"}}
{{#with content}}
<ol class="timeline">
{{#each this}}
{{#is constructor="App.Design"}}
... stuff about the design
{{/is}}
{{#is constructor="App.Order"}}
... stuff about the order
{{/is}}
{{#is constructor="App.Message"}}
... stuff about the message
{{/is}}
{{/each}}
</ol>
{{/with}}
{{/view}}

...和一个 helper ...
Handlebars.registerHelper('is', function(options) {
if (this.constructor == options.hash["constructor"]) {
return options.fn(this);
}
});

我宁愿依靠一些约定来确定要呈现的 View 。例如:
<script type="text/x-handlebars-template" data-model="App.Design" id="design-view">
... stuff about the design
</script>

<script type="text/x-handlebars-template" data-model="App.Order" id="order-view">
... stuff about the order
</script>

也许 data-model 属性可用于确定对象的呈现方式。
{{#view App.SelectedAccountView contentBinding="App.selectedAccountController.everythingSorted"}}
{{#with content}}
<ol class="timeline">
{{#each this}}
{{viewish this}}
{{/each}}
</ol>
{{/with}}
{{/view}}

唉,我不知道如何从助手访问模板。
Handlebars.registerHelper('viewish', function(options) {
// Were I able to access the templates this question
// would be unnecessary.
// Handlebars.TEMPLATES is undefined...
});

另外,这是我应该用 Handlebars 做的事情吗?

最佳答案

使用 ViewStates,请参见以下示例:

http://jsfiddle.net/rsaccon/AD2RY/

关于ember.js - 使用 Ember + Handlebars 在运行时动态选择 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8824656/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com