2013-04-03 40 views
0

在我的查看頁面我試圖放置一個用戶的電子郵件地址,我使用knockout.js從數據綁定中獲得,但我無法正常工作。數據綁定電子郵件到mailto鏈接json

代碼電子郵件

<a class="icon-envelope icon-white" data-bind="attr:{href:'mailto:' + Email},text:Email"></a> 

這是我已經和目前的結果是:該圖標,然後下一個電子郵件地址給它,當我點擊電子郵件沒有任何反應。任何有用的提示表示讚賞。

回答

3

在做一個綁定的屬性,你通常通過給屬性名綁定,就像你與文字結合:

data-bind="text:Email" 

但有一點要注意的是電子郵件是可觀察到的,並可觀察的實際上是一種方法,而不是一個字符串。因此,如果您想直接在綁定中執行一些JavaScript,例如將「mailto:」與Email observable的值連接起來,則需要調用observable以獲取其值,如下所示:

data-bind="attr:{href:'mailto:' + Email()}" 

您可能想要考慮的另一種方法是創建一個計算的可觀察值,以便您可以使用更簡單的標記。在您的視圖模型的計算可觀察到的可能是這樣的:

self.EmailLink = ko.computed(function() { 
    return 'mailto:' + self.Email(); 
}); 

然後標記看起來是這樣的:

<a data-bind="attr:{href:'mailto:' + EmailLink},text:Email"></a> 

工作撥弄着兩個選擇:http://jsfiddle.net/tlarson/tG7mg/

+0

謝謝這真是棒極了!我注意到在Chrome中,電子郵件沒有打開任何東西,因爲我沒有在控制面板中設置默認程序。 – Masriyah

相關問題