Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/430.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Ember组件的动态模板参数_Javascript_Ember.js_Glimmer.js - Fatal编程技术网

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 [];
}