仍在学习AngularJS。我偶然发现了另一个AngularJS / JS怪癖。
我正在使用bootstrap 3打开一个带有咏叹调标签的模态,使用按钮打开angularjs:
<button class="btn btn-xs btn-default" data-toggle="modal" data-target="#test-modal">
Show modal
</button>
在我的模态中,我在ng-repeat标记中设置了一个布尔值:
<div ng-repeat="test_data in test_array">
<label>{{test_bool}} - Assertion: {{test_bool == true}}</label>
<button ng-click="test_bool = !test_bool">Flip</button>
</div>
我希望在关闭和重新打开模态时,test_bool会被初始化,但事实并非如此。相反,即使模态被关闭,变量也会保持状态。
我在这个plunkr中说明了它:http://plnkr.co/edit/sO5bAq81OR3oB8O4zHEk?p=preview。
如果这些值都具有相同的名称,角度如何区分?我知道我可以通过从JS启动它来定义模态使用的范围,但是当所有值具有相同名称时,这对我有何帮助?数据必须包含在我不知道如何到达的特定于角度的数据容器中。
我通常通过打印变量并在控制台中查看这些问题来调试这些问题,但由于我不知道的原因,这对于角度“$”变量是不可能的。
所以我的问题:如何从我的控制器代码访问模型中定义的变量?我如何确保每次打开模态时都清除这些变量?
干杯!