如何使用绑定帮助程序创建面向外部的URL?

时间:2015-09-08 12:59:33

标签: javascript ember.js handlebars.js

我有以下内容:

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

Param1,param2和param3根据其他因素而变化。这需要由绑定的帮助程序处理。所以我有,例如:

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

点击此处时生成的网址(示例,不含参数):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

如何让它转到外部网址?我想生成一个不被Ember改变的URL:在这种情况下,只需“https://exampleurl.net/query=

2 个答案:

答案 0 :(得分:1)

好像你正在使用旧版本的Ember,所以这是解决方案:

您可以在控制器上定义计算属性:

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>

如果你觉得它必须更抽象并在不同的控制器中重用,那么同样可以作为一个组件来实现。

答案 1 :(得分:0)

在Ember 2.0中你可以这样做:

from statsmodels.tsa.arima_model import ARIMA
order = [2,1,1]
endog = TimeSeries1['NMV'] 
fit = ARIMA(endog, order).fit()
aic = fit.aic()

假设<a target = "_blank" href="{{ createUrl param1 param2 param3 }}"> [ Click here ]</a> 是定义好的助手。

将应用程序的Ember版本升级到最新版本。