Javascript 如何让angularjs下拉列表刷新?
我有一个按钮,在点击时显示下拉列表。单击下拉列表的每个元素都会生成一个ui对话框。打开ui时,将选中下拉列表中的相应项。再次单击下拉列表中的元素将关闭对话框,并在列表中取消选中它 也可以使用对话框上的“X”按钮关闭对话框。我需要这个关闭操作来取消选中下拉列表中相应的元素。这是我在控制器内部拥有的:Javascript 如何让angularjs下拉列表刷新?,javascript,jquery,html,angularjs,Javascript,Jquery,Html,Angularjs,我有一个按钮,在点击时显示下拉列表。单击下拉列表的每个元素都会生成一个ui对话框。打开ui时,将选中下拉列表中的相应项。再次单击下拉列表中的元素将关闭对话框,并在列表中取消选中它 也可以使用对话框上的“X”按钮关闭对话框。我需要这个关闭操作来取消选中下拉列表中相应的元素。这是我在控制器内部拥有的: <div class="dropdown"> <button type="button" class="btn btn-default dropdown-toggle" st
<div class="dropdown">
<button type="button" class="btn btn-default dropdown-toggle" style="width:100px">
<img src="/UIDemo/images/maps-icon.png" style="padding-right:3px" />
Data Grid
<span class="caret"></span>
</button>
<ul class="dropdown-menu" role="menu">
<li><a href="#" ng-click="showRouteFeature = !showRouteFeature;
openCloseGrid('routeFeature', showRouteFeature);">
<span ng-class=
"{'glyphicon glyphicon-ok icon-ok check-mark': showRouteFeature,
'glyphicon no-icon': !showRouteFeature}">
</span>
<span class="text">Route Feature</span></a></li>
</ul>
</div>
格式有点粗略,但我已经尽力了。当我单击下拉列表中的某个选项时,它会设置通过单击showRouteFeature建立的切换,从true切换到false,反之亦然。单击对话框上的“X”时,它会将$scope.showRouteFeature设置为false,这将取消选中下拉列表中的元素。我可以在控制台中看到,当我单击“X”时,$scope.showRouteFeature实际上设置为false
我在这个问题上发现了这个问题和这篇文章,这就是为什么我在将变量设置为false后使用$scope.apply。然而,这并不能刷新我的下拉列表。如果您有任何见解,我们将不胜感激。这可能不是您的问题,但我怀疑可能是这样,因此: 警告一句,当您在示例中直接在作用域上使用原语时,您最好非常清楚自己在做什么。一般来说,应该避免这种情况。原因是,如果创建了子作用域,原型继承将使子作用域上的属性不会反映在父作用域上。许多内置的角度指令创建子作用域ng repeat、ng if、ng开关。您的代码中没有显示ng repeat,但如果它按照您的解释工作,我怀疑您的实际代码中有它。因此,将属性放置到对象中 要想知道这是否是您的问题,最好将{{showRouteFeature}}放在HTML的最顶层,然后将其放在DOM中更深的几个层次上。如果它们的值开始不同,则存在范围继承问题 有关更多信息,请参见此处的第一点:
Try:$scope.applyfunction{$scope.showRouteFeature=false;};不起作用,但是谢谢你的建议。你能展示更多的代码吗?我不知道发生了什么。。。
$(document).on('click', '.ui-dialog-titlebar-close', function () {
$scope.showRouteFeature = false;
$scope.apply();
});