javascript - Angular directive not updating object in ng-repeat -
i have directive displays tree of folders. directive recursive display subfolders.
<div ng-click="toggleopen()" class="action"> <span ng-if="folder.opened"><img class="icon" src="assets/img/load.png"/></span> <span ng-if="!folder.opened"><img class="icon" src="assets/img/closed.png"/></span> {{folder.name}} {{folder.opened}} <ul ng-if="folder.children.folder" class="folder"> <li ng-if="folder.opened" ng-repeat="fol in folder.children.folder"> <my-folder folder="fol"></my-folder> </li> </ul> <ul ng-if="folder.children.query" class="folder"> <li ng-if="folder.opened" ng-repeat="query in folder.children.query"> <img class="icon" src="assets/img/copy.png"/> {{query.name}} </li> </ul> </div> each folder has property opened. when click on element call function toggle opened state:
$scope.toggleopen = function(){ this.opened = !this.opened; } however, whenever click folders aren't closed. when put breakpoint on toggleopen see value of this.opened true. if has been changed false.
can out?
it this isn't referencing think is. try doing:
var self = this; $scope.toggleopen = function(){ self.opened = !self.opened; }
Comments
Post a Comment