2013-02-08 25 views
17

Şu anda web uygulaması geliştirme için Ember.js'yi kullanmayı öğrenmeye başlıyorum. Şu anda henüz elde edemediğim oldukça basit bir şey var. Www.google.com gibi bir harici URL'ye veya başka bir şeye bağlantı verin. Bu benim ne var:Harici bir URL'ye LinkTo with HandelBars ile bağlantı kurma

HTML

<body> 
    <script type="text/x-handlebars"> 
    <div> 
     Hello, <strong>{{firstName}} {{lastName}}</strong>! 
    </div> 

     {{#linkTo google}}Google{{/linkTo}} 

    </script> 
</body> 





$(document).ready(function() { 



//alert("HELLO WORLD"); 
window.App = Ember.Application.create(); 

App.ApplicationController = Ember.Controller.extend({ 
    firstName: "Trek", 
    lastName: "Glowacki", 
    googleURL: "www.google.com/ncr" 
}); 

App.Router.map(function() { 
    this.route("google", { 
     path: "www.google.com" 
    }); 

}); 

});

bağlantı görüntüleme şeklinin çalışır ancak bu adrese gider: D: /EMBERJS/index.html#/www.google.com

Herhangi ipuçları büyük takdir. Bunu kendi başıma çözmediğime inanamıyorum ama biraz dışarıdan yardım ağrıyor.

Selamlar, Bunun için linkTo yardımcı kullanıyor istemiyoruz

+1

'linkTo' şablonuna ihtiyacınız olan belirli bir neden var mı? Neden sadece bir HTML etiketini saf HTML'de kullanmadınız? – Deif

cevap

35

Öküz. linkTo yardımcısı, Ember.JS uygulamanızdaki diğer durumlara geçiş için kullanılırken, insanları uygulamanızdan uzaklaştırmaya çalışıyorsunuz.

kullanabileceğiniz iki yöntem vardır:

  1. Bu senin targetUrl sizin çapa bağlanan, ancak URL değiştirilirse o güncelleme yapmayacaktır.

    <a target="_blank" href="{{unbound view.targetUrl}}">Google</a>

  2. sonraki yaklaşım çapa bağlanacaktır ve nesne üzerinde targetUrl özelliği güncelleştirmek eğer buna göre bu çapa güncellenecektir:

    <a target="_blank" {{bindAttr href="view.targetUrl"}}>Google</a> İşte

bir var Sizin için JSFiddle: http://jsfiddle.net/zscff/

+1

JSFiddle'ı sizin için güncelledim, böylece 'unbound' un yarattığı farkı anlayabilirsiniz: http: // jsfiddle.net/zscff/1/2.5 saniye sonra 'targetUrl 'özelliğini değiştiriyoruz, ikinci örneğin beklendiği gibi güncellendiğini göreceksiniz, ancak birincisi yok. İkisi de aynı özelliği kullanıyorlar, ancak ilk özelliği "ilişkisiz" olarak belirlediğimizden Ember, DOM'da nasıl güncelleneceğini bilmiyor. – Wildhoney

+0

Takdir ediyorum, bakmama izin ver. – Oxnigarth

+1

bindAttr şimdi bind-attr lehine kabul edilmiyor –

0

Size d söylendiği gibi link- yardımcısını kullanmanız gerekmemektedir. Sadece basit bağlantı etiketini <a> </a> kullanmanız yeterlidir.

Sadece aynı sorunu yaşadım. Bunu düzeltmek için bağlantı etiketine dikkat etmeniz yeterlidir.
E.g. Bu <a href='www.example.com'> example </a> gibi linki yazarsanız, Ember aşağıdaki linki
localhost'u üretecektir: 4200/www.example.com

Ama http eklerseniz, herşey yolunda öznitelik href için.
<a href='http://www.example.com'> example </a>.
Çıktı www.example.com

Umarım yardımcı olur olduğunu.

İlgili konular