Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/sharepoint/4.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 如何更改规则中document.getElementById的显示_Javascript_Angular - Fatal编程技术网

Javascript 如何更改规则中document.getElementById的显示

Javascript 如何更改规则中document.getElementById的显示,javascript,angular,Javascript,Angular,我有一个场景,在这个场景中,我使用来自后端的数据生成动态元素 <tr *ngFor="let data of datas" (click)="display(data.id)"> <div id="'full'+data.id" [style.display]=" active? 'block': 'none'"> </div> </tr> 我想做的是上面的事情。我尝试了下面这样的方法,但不起作用,它会抛出错误 类型“HTMLInput

我有一个场景,在这个场景中,我使用来自后端的数据生成动态元素

<tr *ngFor="let data of datas" (click)="display(data.id)">

<div id="'full'+data.id" [style.display]=" active? 'block': 'none'">

</div>


</tr> 
我想做的是上面的事情。我尝试了下面这样的方法,但不起作用,它会抛出错误

类型“HTMLInputElement”上不存在属性“display”

有什么建议,怎么做,谢谢

类型“HTMLInputElement”上不存在属性“display”

这是因为HTML元素没有属性
display
。您需要的是:

document.getElementById(`full${id}`).style.display='block';
类型“HTMLInputElement”上不存在属性“display”

这是因为HTML元素没有属性
display
。您需要的是:

document.getElementById(`full${id}`).style.display='block';

与其直接操作DOM,更具角度性的方法是跟踪每行的可见性状态,并通过NgIf

NgIf:一个结构化指令,它有条件地包含一个基于强制为Boolean的表达式值的模板。当表达式的计算结果为true时,Angular将呈现then子句中提供的模板;当表达式的计算结果为false或null时,Angular将呈现可选else子句中提供的模板。else子句的默认模板为空

下面是一个示例,其中一个布尔值驱动单个div的切换,但是您可以对数据上的映射执行类似的操作

@Component({
  selector: 'ng-if-simple',
  template: `
    <button (click)="show = !show">{{show ? 'hide' : 'show'}}</button>
    show = {{show}}
    <br>
    <div *ngIf="show">Text to show</div>
`
})
export class NgIfSimple {
  show: boolean = true;
}
@组件({
选择器:'ng if simple',
模板:`
{{显示?'hide':'show'}
show={{show}

要显示的文本 ` }) 导出类NgIfSimple{ show:boolean=true; }
与其直接操作DOM,更具角度的方法是跟踪每行的可见性状态,并通过NgIf驱动可见性

NgIf:一个结构化指令,它有条件地包含一个基于强制为Boolean的表达式值的模板。当表达式的计算结果为true时,Angular将呈现then子句中提供的模板;当表达式的计算结果为false或null时,Angular将呈现可选else子句中提供的模板。else子句的默认模板为空

下面是一个示例,其中一个布尔值驱动单个div的切换,但是您可以对数据上的映射执行类似的操作

@Component({
  selector: 'ng-if-simple',
  template: `
    <button (click)="show = !show">{{show ? 'hide' : 'show'}}</button>
    show = {{show}}
    <br>
    <div *ngIf="show">Text to show</div>
`
})
export class NgIfSimple {
  show: boolean = true;
}
@组件({
选择器:'ng if simple',
模板:`
{{显示?'hide':'show'}
show={{show}

要显示的文本 ` }) 导出类NgIfSimple{ show:boolean=true; }
没问题。另外,这可能不起作用,因为在HTML中,id属性不是由Angular编译的,除非您添加这样的括号:
[id]=“'full'+data.id”
没问题。另外,这可能不起作用,因为在HTML中,id属性不是由Angular编译的,除非您添加这样的括号:
[id]=“'full'+data.id”
,但是如何处理大量未知数据?我假设'datas'是一个JSON对象数组。您还没有显示如何加载数据。但是,加载此数据时,可以向每个对象添加可见性属性并将其默认为true。但我希望它默认为false,并且我的数据正在使用setInterval动态更新,因此在某些情况下,它会被隐藏:(那么默认值您可以将其默认为false。很抱歉,没有更多详细信息,我只能提供这些信息。但是如何处理大量未知数据?我假设“datas”是一个JSON对象数组。您还没有显示如何加载数据。但是,当您加载此数据时,可以为每个对象添加可见性属性,并将其默认为tr。)但是我希望它是默认的false,并且我的数据正在用setInterval动态更新,所以在某些时候它会被隐藏:(然后默认值)你可以将它默认为false。对不起,没有更多细节,我只能提供这些。