2012-12-28 60 views
3
{{#view tagName="a" href="#"}} 
    The Link 
{{/view}} 

預期的HTML與 「一」 的標籤

<a href="#" class="ember-view" id="emberXXX"> The Link </a> 

現實灰燼視圖助手意外行爲

<a class="ember-view" id="emberXXX"> The Link </a> 

無法看到href屬性

而且嘗試hrefBinding="#", href=true

在類似的路線,我想給它的行動聯繫起來,所以嘗試失敗之後試圖

{{#view tagName="a" href="#" snippet}} 
    The Link 
{{/view}} 

其中片段是action="showHome", click="showHome", actionBinding="showHome", clickBinding="showHome"(操作這裏有路線的轉變)的

無他們一起工作,我知道我可以簡單地做

<a href="#" {{action showHome}}>The Link</a> 

定義視圖

aView = Ember.View.extend({ 
    tagName: 'a', 
    click: function(){ 
    this.get('controller').controllers.send('showHome'); 
    } 
}) 

把事情的工作,但我是如何實現它的模板方式在短期

+0

您目前使用的是什麼版本的ember.js?這個版本的燼器使用什麼版本的把手?只是好奇,因爲一個簡單的Click似乎工作(給出一個有效的href =#)在燼1.0前2版本我正在使用 –

+0

使用ember-1.0-pre,我認爲你的建議可能工作,但我試圖實現它使用{{view}}幫手而不是HTML標籤(出於我自己的好奇心!) –

+0

ah我的不好(顯然我沒有讀得夠近/足夠長) –

回答

8

答案(和解決方法)

{{#view Ember.Button tagName="a" target="#" action="someAction"}}Link Name{{/view}} 

回答在長期好奇:

當你說你可以簡單地做

<a href="#" {{action showHome}}>The Link</a> 

。這是你得到一個href="#"一些預定義的路由操作的唯一途徑。但從JavaScript應用程序的角度來看,創建/擴展視圖更有意義。

當你說你也試過hrefBinding="#",這意味着你明白,綁定是針對視圖。因此,從模板的角度來看,只有(我認爲)在html標記中具有虛擬鏈接。正確的方法應該是擴大視圖:

AnchorView = Ember.View.extend({ 
    tagName: 'a', 
    attributeBindings: ['href'], 
    href: '#' // 
}); 
+0

謝謝,我從來沒有用過Ember.Button,現在我想它現在是時候了:) –