Javascript Ember组件的动态模板参数
我遇到了这样一种情况:一个微光组件在其中呈现一个Javascript Ember组件的动态模板参数,javascript,ember.js,glimmer.js,Javascript,Ember.js,Glimmer.js,我遇到了这样一种情况:一个微光组件在其中呈现一个链接到组件。问题是LinkTo将@model={{{undefined}}和省略@model参数的情况视为两种不同的情况。这是因为它的默认值为。当这种情况发生时,组件使用JS进行转换,即href为#,因此您不能使用浏览器命令(如“在新选项卡中打开”)来打开生成的链接。所以我尝试使用内联ifs <LinkTo @route={{@route}} {{if @model (concat "@model={{"
链接到
组件。问题是LinkTo
将@model={{{undefined}}
和省略@model
参数的情况视为两种不同的情况。这是因为它的默认值为。当这种情况发生时,组件使用JS进行转换,即href为#
,因此您不能使用浏览器命令(如“在新选项卡中打开”)来打开生成的链接。所以我尝试使用内联if
s
<LinkTo @route={{@route}}
{{if @model (concat "@model={{" @model "}}")}}
{{if @query (concat "@query={{" @query "}}")}}
>
{{yield}}
</LinkTo>
这是可行的,但相当冗长,需要大量重复。只有在指定给父组件时,才有办法动态传递
@model
吗?我认为您应该始终依赖@models
您可以这样做:
<LinkTo @route={{@route}} @models={{this.models}}>{{yield}}</LinkTo>
我认为你应该始终依靠
@模型
您可以这样做:
<LinkTo @route={{@route}} @models={{this.models}}>{{yield}}</LinkTo>
这无疑有助于减少我的组件的冗长。谢谢我仍然想知道是否有一种方法可以为组件指定动态参数。这无疑有助于减少组件的冗长。谢谢我仍然想知道是否有一种方法可以为组件指定动态参数。
get models() {
if(this.args.model) {
return [this.args.model];
}
if(this.args.models) {
return this.args.models;
}
return [];
}