angular - 动态创建的变量没有作用域?
问题描述
所以以前在 Angular 1.X 中,我习惯于在 html 端创建局部变量。
它通常看起来像这样(AngularJS):
<div class="parentContainer" ng-repeat="error in $ctrl.systemErrorMessages>
<div ng-click="showHide=(showHide ? false : true)">
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Click me to toggle all selectors in the same hierarchical-level (scope) as me.
</div>
<div ng-if="showHide"> {{error.message}} </div>
</div>
上面的代码将创建变量并显示里面的 div。
但是,如果我在 Angular 1.X 中将它放在ng-repeat
标签中,那么该变量将是其范围的本地变量。假设有 50 个条目systemErrMessages
,当我现在单击切换 div 时,所有 50 个条目都在做出反应……以前是这样 - 只有我单击了谁切换 div 的消息;反应过来……
Angular2 似乎打破了 ngFor 的范围,并影响了所有元素。
我正在尝试什么(Angular 2):
<div *ngFor="let error of systemErrMessages">
<div class="item" [hidden]="showHide">
ErrorMessage: {{error}}
</div>
<div (click)="showHide=(showHide ? false : true)">TOGGLE above</div>
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
</div>
澄清(TL;DR):
HTML 结构(ngFor 生成的内容):
<div class="parentContainer">
<div class="item">
<div class="information" [hidden]="showHide">lorem ipsum</div>
<div (click)="showHide=(showHide ? false : true)">TOGGLE</div>
</div>
<div class="item">...</div>
<div class="item">...</div>
<div class="item">...</div>
<div class="item">...</div>
<div class="item">...</div>
<div class="item">...</div>
</div>
当我在 angular2 中单击 TOGGLE 时,所有元素都是可见的。
在 AngularJS 中,只有' .item
s.information
是可见的。
是否有可能get the same behaviour as in 1.X ?
解决方案
角^7.xx
如果要在模板中创建动态变量,只需创建它:
<div *ngFor="let error of systemErrMessages; let showHide = 'showHide'">
^^^^^^^^^^^^^^^^^^^^^^^^^^^
<div class="item" [hidden]="showHide">
ErrorMessage: {{error}}
</div>
<div (click)="showHide = !showHide">TOGGLE above</div>
</div>
否则您的showHide
变量将具有组件范围。
推荐阅读
- python - Python如何根据条件从现有数据集创建新数据集
- python - Development() 没有参数?
- apache-spark - 使用不同模式加载 SPARK Parquet 文件
- java - 是否可以纯粹在 JDBC 连接 URL 中设置“oracle.net.encryption_client”属性?
- sql - 在 PRESTO CASE 语句中使用 Count 和 JOIN 的有效方法
- c# - 无法 Convert.FromBase64String 一个 base64 编码的字符串
- java - 公开磁盘使用指标 Spring Boot 应用程序
- python - 我如何制作它以读取用户所说的内容并使用它来扮演角色?不和谐.py
- jquery - 如何使用JS在asp.net中的GridView中使用属性查找值?
- php - 您如何缩小现代 PHP 中的语言环境/代码页上下文?