2013-07-11 13 views
5

Sto cercando di creare un semplice collegamento a google maps con un indirizzo dinamico inserito nel campo href. Ho provato il codice qui sotto più tonnellate di altri pasticci senza fortuna. Come si interpola una stringa di brace dinamica in un campo href di manubri?Interpolazione ambra in un tag href nel modello manubri

Sto usando ember, rail e manubri. So come usare bindAttr se ho avuto l'intero URL memorizzato con il mio modello ma ho solo l'indirizzo. Mettere l'URL di Google con ogni modello sembrava inutile se potessi chiamarlo solo una volta nella vista.

<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> 

Quello che ho usato per Fix it

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') 
) 

risposta

8

Si potrebbe fare qualcosa di simile, vedi demo.

Fondamentalmente è possibile creare un Mixin per le proprietà comuni e quindi miscelarlo nei modelli. Per esempio:

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') 
}); 

Così si potrebbe poi usarlo in voi modelli come questo:

{{#each model}} 
<h1>{{name}}</h1> 
    <div> 
    <p><a {{bind-attr href='fullAddress'}}>{{address}}</a></p> 
    </div> 
{{/each}} 

Speranza che aiuta.

+0

Grazie !! mi hai sicuramente indirizzato nella giusta direzione. Questa è la prima volta che uso tutte queste tecnologie insieme. Rails, Ruby, Ember, Coffeescript, Handlebars quindi sono ancora un po 'confuso su come strutturare tutto ma l'ho risolto con il codice aggiunto alla domanda. Grazie ancora! –

+0

@GarrettBoone Sono felice di poterti aiutare, sentitevi libero di postare più domande qui su SO, sono sicuro che hanno risposto con successo :) – intuitivepixel

+0

@intuitivepixel che jsbin non funziona. (non rende il modello) –

Problemi correlati