gpt4 book ai didi

ember.js - emberjs Handlebars 模板中的字符串插值

转载 作者:行者123 更新时间:2023-12-04 23:20:55 25 4
gpt4 key购买 nike

我正在使用 http://ivaynberg.github.io/select2/在 rails-emberjs 应用程序中提供自动完成功能。我确实有 some_dynamic_id 值。我的 Handlebars 代码如下:

{{
view App.TokenAutoCompleteView
searchUrl="/users/" + some_dynamic_id + "/books/search"
optionValuePath="content.id"
optionLabelPath="content.name"
multiple="false"
}}

我想将动态创建的 url 分配给 searchUrl 属性。我尝试使用来自 Ember Interpolation in a href tag in handlebars template 的 bind-attr但无法让它工作。

最佳答案

请记住,Handlebars 模板是无逻辑的,因此没有字符串插值的概念。您应该在 Controller (或组件)内的计算属性中执行此操作。

在您的 Controller 中:

dynamicSearchUrl: function() {
return '/users/' + this.get('someDynamicId') + '/books/search';
}.property('someDynamicId')

在您的模板中:
{{view App.TokenAutoCompleteView searchUrl=dynamicSearchUrl ... }}

更新:我已经很久没有回答这个问题了,所以我想我会更新。 Ember.js 现在使用支持 subexpressions 的较新版本的 Handlebars .这意味着模板中的字符串连接现在是可能的。您只需要编写一个连接助手。
// helpers/concat.js
export default Ember.Helper.helper(function(first, second, three) {
// You could make this apply to more than three strings...
return first + '' + second + '' + three;
});

一旦你有了它,只需在你的模板中使用一个子表达式:
{{
view App.TokenAutoCompleteView
searchUrl=(concat "/users/" some_dynamic_id "/books/search")
optionValuePath="content.id"
optionLabelPath="content.name"
multiple="false"
}}

在这种情况下,我仍然非常喜欢我的第一个答案,但现在可以使用第二个答案。

关于ember.js - emberjs Handlebars 模板中的字符串插值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27229743/

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