2015-09-08 44 views
0

我有以下:這取決於其他因素如何使用綁定助手創建面向外部的URL?

<a target = "_blank" href="{{ createUrl param1 param2 param3 }}"> [ Click here ]</a> 

參數1,參數2和參數3的變化。這需要由綁定的幫手處理。所以我有,例如:

Ember.Handlebars.registerBoundHelper 'createUrl', (param1, param2, param3) -> 
    return "https://exampleurl.net/query=" + param1?.toString() + param2?.toString() + param3?.toString() 

這樣的事時,點擊生成URL(樣品,沒有參數):https://localhost:8443/%3Cscript%20id='metamorph-53-start'%20type='text/x-placeholder'%3E%3C/script%3Ehttps://exampleurl.net/query=%3Cscript%20id='metamorph-53-end'%20type='text/x-placeholder'%3E%3C/script%3E

我怎樣才能使它到外部URL呢?我想產生不是由灰燼改變的URL:在這種情況下,簡單的「https://exampleurl.net/query=

+0

升級你的花心版本,metamorph腳本已被刪除,並且已經廢棄了handlebars。 –

回答

1

好像你使用的是舊版本的灰燼的,所以這裏的解決方案:在你的模板

export default Ember.Controller.extend({ 
    param1: "", 
    param2: "", 
    param3: "", 
    externalUrl: Ember.computed('param1', 'param2', 'param3', function(){ 
     return "https://exampleurl.net/query=" + this.get('param1') + this.get('param2') + this.get('param3'); 
    }); 
}); 

然後將它綁定:

您可以在控制器上定義計算的財產

<a target = "_blank" {{bind-attr href=externalUrl}}"> [ Click here ]</a> 

如果您覺得它必須更加抽象,並在不同的控制器中重複使用,同樣可以作爲一個組件實現。

0

在灰燼2.0,你可以這樣做:

<a target = "_blank" href="{{ createUrl param1 param2 param3 }}"> [ Click here ]</a> 

假設createUrl定義幫手。

將應用程序的Ember版本升級到最新版本。

+0

您是否想要複製/粘貼其他內容?這是我的問題中的第一行代碼。我也在我的問題中註冊了一名綁定幫手。 – navkast

+0

我的意思是使用最新的Ember版本。 –