我有一个具有ng-click事件的元素,并且在单击它时添加一个工作正常的div。我想要的是在添加div后删除ng-click。
一种方法是使用ng-if
<div ng-click="addDiv()" ng-if="!divAdded" >
<span>i add a div</span>
</div>
<div class="disabled" ng-if="divAdded" >
<span>i add a div</span>
</div>
为此我必须为可以开启和关闭的单个元素添加多个div。 有没有办法像我们动态地在jquery中那样取消绑定点击事件?
任何帮助将不胜感激
答案 0 :(得分:2)
将该逻辑放入controller
,而不是view
(function(){
function divAddController() {
var self = this;
self.divAdded = false;
self.addDiv = function() {
if(!divAdded) {
//Add div here
self.divAdded = true;
}
}
}
angular.module("example")
.controller("divAddController", divAddController);
})();
<div ng-controller="divAddController as divAdder">
<div ng-click="divAdder.addDiv()" ng-class="{disabled: divAdder.divAdded}">
<span>i add a div</span>
</div>
</div>
答案 1 :(得分:2)
你也可以这样做:
<div ng-click="divAdded || addDiv()" >
<span>i add a div</span>
</div>
如果addDiv()
为真
divAdded
答案 2 :(得分:0)
您可以通过以下更简单的方式完成此操作:
var myApp = angular.module('myApp', []);
myApp.controller('MyCtrl', function($scope) {
$scope.showDiv = false;
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="myApp" ng-controller="MyCtrl">
<button ng-click="showDiv = true;">I show the div</button>
<div ng-if="showDiv">I am visible!</div>
</div>
&#13;