我有AngularJS(1.x)组件-确切地说是实际的指令, 并且仅在第二次点击后才能触发/处理/操作此指令中的元素。
例如:除非您单击两次,否则下拉菜单将不会切换。 第二次单击后,切换将在每次下一次单击时显示。
就像元素没有在DOM中被消化一样。
这是组件调用:
<dropdown-custom-component-example></dropdown-custom-component-example>
这是组件html文件:
<div class="dropdown">
<a class="btn pl-2" data-toggle="dropdown">
<i class="icon-options"></i>
</a>
<div class="dropdown-menu">
<a class="dropdown-item" data-toggle="modal" data-target=".create-supplier">
<i class="fa icon-plus text-primary"></i>
Action
</a>
</div>
</div>
答案 0 :(得分:0)
在检查$ digest是否未在进行中之后,您可以尝试在指令中自己消化:
if(!$scope.$$phase) $scope.$digest();
// or $apply ..
希望这可以解决您的问题:)
答案 1 :(得分:0)
大多数时候AngularJS不响应是因为 Angular上下文之外发生了什么,在这种情况下,尝试使用内置的AngularJS指令复制所需的功能很有用。 >
访问组件的某些实现会很有用。但是,使用您提供的所有信息,您可以使用ngClick
内置指令:
<div class="dropdown">
<a class="btn pl-2" data-toggle="dropdown">
<i class="icon-options"></i>
</a>
<div class="dropdown-menu">
<a class="dropdown-item" data-toggle="modal" data-target=".create-supplier" ng-click="yourFunctionHere(this)">
<i class="fa icon-plus text-primary"></i>
Action
</a>
</div>
</div>