如何在一次角度单击中放置两个“功能”

时间:2015-06-24 09:15:28

标签: javascript html css angularjs

我得到了这个例子:

 <button ng-click="vm.hideElement(dataItem.id ,'listView');active = !active;"><i ng-class="active ? 'icon-visibility_off' : 'icon-visibility'"></i></button>

它应该调用一个函数(vm.hideElement())并设置/切换一个css类属性。 但它不起作用。只调用vm.hideElement()函数。

如果我这样做:

 <button ng-click="active = !active;"><i ng-class="active ? 'icon-visibility_off' : 'icon-visibility'"></i></button>

班级切换工作很好。

如果我这样做:

 <button ng-click="vm.hideElement(dataItem.id ,'listView')"><i ng-class="active ? 'icon-visibility_off' : 'icon-visibility'"></i></button>

函数被调用。

hideElement功能代码:

function hideElement(elementId, from) { 
    ElementsService.hideElement(elementId, from).then(function (success) { 
        activate(); 
    }, 
    function (error) { }); 
}

1 个答案:

答案 0 :(得分:2)

将以下行添加到vm.hideElement函数:

$scope.active = !$scope.active;

这基本上与将active = !active放入ng-click中相同。

另一个选择是,如果您在不想更改$ scope.active的情况下使用vm.hideElement函数,则创建一个设置$scope.active并调用vm的新函数。 hideElement()。