如何使用绑定助手创建面向外部的 URL?
How do you create externally facing URLs using bound helpers?
我有以下内容:
<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()
点击它时生成的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?我想生成一个未被 Ember 改变的 URL:在这种情况下,只需“https://exampleurl.net/query=”
在 Ember 2.0 中你可以:
<a target = "_blank" href="{{ createUrl param1 param2 param3 }}"> [ Click here ]</a>
假设 createUrl
是定义的助手。
将应用程序的 Ember 版本升级到最新版本。
看来您使用的是旧版本 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>
如果你觉得它必须更抽象并在不同的控制器中重用,同样可以作为一个组件来实现。
我有以下内容:
<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()
点击它时生成的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?我想生成一个未被 Ember 改变的 URL:在这种情况下,只需“https://exampleurl.net/query=”
在 Ember 2.0 中你可以:
<a target = "_blank" href="{{ createUrl param1 param2 param3 }}"> [ Click here ]</a>
假设 createUrl
是定义的助手。
将应用程序的 Ember 版本升级到最新版本。
看来您使用的是旧版本 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>
如果你觉得它必须更抽象并在不同的控制器中重用,同样可以作为一个组件来实现。