Gar*_*one 5 string-interpolation handlebars.js ember.js
我正在尝试使用插入href字段的动态地址创建一个简单的谷歌地图链接.我已经尝试了下面的代码加上其他大量的麻烦,没有运气.如何在把手href字段中插入动态余烬字符串?
我正在使用余烬,铁轨和车把.我知道如何使用bindAttr,如果我将整个url存储在我的模型中,但我只有地址.如果我可以在视图中调用一次,那么将google网址与每个模型放在一起似乎是不必要的.
<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>
Run Code Online (Sandbox Code Playgroud)
我用来修复它
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')
)
Run Code Online (Sandbox Code Playgroud)
你可以这样做,看看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')
});
Run Code Online (Sandbox Code Playgroud)
所以你以后可以在你的模板中使用它,如下所示:
{{#each model}}
<h1>{{name}}</h1>
<div>
<p><a {{bind-attr href='fullAddress'}}>{{address}}</a></p>
</div>
{{/each}}
Run Code Online (Sandbox Code Playgroud)
希望能帮助到你.
| 归档时间: |
|
| 查看次数: |
4172 次 |
| 最近记录: |