我正在使用AngularUI Bootstrap手风琴,我需要根据数据打开它,来自$http请求,这是我的标记:
<div data-accordion>
<div data-accordion-group data-heading="Group 1" is-open="!$parent.toggle">
<!-- random content -->
</div>
<div data-accordion-group data-heading="Group 2" is-open="$parent.toggle">
<!-- random content -->
</div>
</div>
下面是传入数据的示例:
randomService.getdata(id).then(function(response) {
randomService.toggle = response.data;
$scope.toggle = randomService.toggle;
});
此设置的问题在于,如果我单击标题以打开/关闭,变量也会被切换(我想避免这种情况)。可以通过分别将is-open
更改为 !( !!($parent.toggle)
和 !!($parent.toggle)
来避免这种情况。
然而,问题仍然存在:当$scope.toggle为假时,正确的手风琴是打开的,当它是真的时,两个手风琴都是关闭的。
一种解决方案可能是使用两个范围变量 open1 和 open2,因此当数据进入时,无论它们处于何种状态,您始终可以将正确的变量设置为 true。如果手风琴将属性 close-others设置为 true,这也应该有效。