Javascript 无法在ng reapeat中设置AngularJS变量
我想实现的列表应该是完全可见的,只有在点击。 但当我尝试在Javascript 无法在ng reapeat中设置AngularJS变量,javascript,angularjs,Javascript,Angularjs,我想实现的列表应该是完全可见的,只有在点击。 但当我尝试在ng click上设置值时,值范围仅在on clicked元素中 <ul data-ng-init="showIataList = false"> {{showIataList}} <-- always false :( but should be true after click on link from list <li data-ng-repeat="value in data.departureIa
ng click
上设置值时,值范围仅在on clicked元素中
<ul data-ng-init="showIataList = false">
{{showIataList}} <-- always false :( but should be true after click on link from list
<li data-ng-repeat="value in data.departureIataList">
<a href="javascript:"
data-ng-if="$index < 3 || showIataList">
{{value}}
</a>
{{showIataList}}
<a href="javascript:"
data-ng-if="!showIataList && $index == 3"
data-ng-click="showIataList = true">
{{showIataList}} <-- after click is true, but true should be and on the top showIataList variable
</a>
</li>
</ul>
{{showitalist}FYI,每个
ng repeat
项目都有自己的范围。这就是为什么data ng click=“showitalist=true”
适用于特定范围而不是主$scope
的原因
例如,您可以编写:
$scope.data.showIataList = false;
一切都会好起来的
或者在您的情况下:
供参考,每个ng repeat
项目都有自己的范围。这就是为什么data ng click=“showitalist=true”
适用于特定范围而不是主$scope
的原因
例如,您可以编写:
$scope.data.showIataList = false;
一切都会好起来的
或者在您的情况下:
问题在于此标签。它内部有ng if,因此它创建一个新范围并从父范围继承数据
<a href="javascript:"
data-ng-if="!showIataList && $index == 3"
data-ng-click="showIataList = true">
但单击链接后,ngIf.showitalist
会发生更改,但该更改不会传播到parentScope.showitalist
(因为showitalist
是(原始值)
这就是为什么您在ngIf
中看到,showitalist
是正确的,但在parentScope
中它仍然是错误的
您可以通过将showitalist移动到这样的对象中来修复它
<ul data-ng-init="iataList = {isShow:false}">
{{iataList.isShow}}
<li data-ng-repeat="value in data.departureIataList">
<a href="javascript:"
data-ng-if="$index < 3 || iataList.isShow">
{{value}}
</a>
{{showIataList}}
<a href="javascript:"
data-ng-if="!iataList.isShow&& $index == 3"
data-ng-click="iataList.isShow= true">
{{iataList.isShow}}
</a>
</li>
</ul>
{{iataList.isShow}}
-
{{showitalist}}
问题在于此标记。它的内部有ng,因此它创建一个新范围并从父范围继承数据
<a href="javascript:"
data-ng-if="!showIataList && $index == 3"
data-ng-click="showIataList = true">
但单击链接后,ngIf.showitalist
会发生更改,但该更改不会传播到parentScope.showitalist
(因为showitalist
是(原始值)
这就是为什么您在ngIf
中看到,showitalist
是正确的,但在parentScope
中它仍然是错误的
您可以通过将showitalist移动到这样的对象中来修复它
<ul data-ng-init="iataList = {isShow:false}">
{{iataList.isShow}}
<li data-ng-repeat="value in data.departureIataList">
<a href="javascript:"
data-ng-if="$index < 3 || iataList.isShow">
{{value}}
</a>
{{showIataList}}
<a href="javascript:"
data-ng-if="!iataList.isShow&& $index == 3"
data-ng-click="iataList.isShow= true">
{{iataList.isShow}}
</a>
</li>
</ul>
{{iataList.isShow}}
-
{{showitalist}}