gpt4 book ai didi

ember.js - Handlebars 模板中 href 标记中的 Ember 插值

转载 作者:行者123 更新时间:2023-12-04 17:50:32 25 4
gpt4 key购买 nike

我正在尝试创建一个指向谷歌地图的简单链接,并将动态地址插入到 href 字段中。我已经尝试了下面的代码以及大量其他没有运气的乱七八糟的东西。如何在 Handlebars href 字段中插入动态 ember 字符串?

我正在使用 Ember 、导轨和 Handlebars 。
如果我将整个 url 与我的模型一起存储但我只有地址,我知道如何使用 bindAttr。如果我可以在 View 中调用一次,那么将每个模型的 google url 放在似乎是不必要的。

<h1>{{name}}</h1>
<div>
<p><a {{bindAttr href='http://maps.com/?1=address'}}>{{address}}</a></p>
</div>

<h1>{{name}}</h1>
<div>
<p><a href='http://maps.google.com/?q={{address}}'>{{address}}</a></p>
</div>

我用来修复它的东西
App.Location = DS.Model.extend(
name: DS.attr('string', defaultValue: "")
address: DS.attr('string', defaultValue: "")
fullAddress: (->
"http://maps.google.com/?q=#{@get('address')}"
).property('address')
)

最佳答案

你可以这样做,见 demo .

基本上你可以创建一个 Mixin 用于常见属性,然后将其混合到您的模型中。
例如:

App.BaseModel = Ember.Mixin.create({
base: 'http://maps.google.com/?q=',
fullAddress: function(){
return this.get('base') + this.get('address');
}.property('address')
});

App.MyModel = DS.Model.extend(App.BaseModel, {
name: DS.attr('string'),
address: DS.attr('string')
});

因此,您以后可以在模板中使用它,如下所示:
{{#each model}}
<h1>{{name}}</h1>
<div>
<p><a {{bind-attr href='fullAddress'}}>{{address}}</a></p>
</div>
{{/each}}

希望能帮助到你。

关于ember.js - Handlebars 模板中 href 标记中的 Ember 插值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17593581/

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