我得到了这个例子:
<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) { });
}
答案 0 :(得分:2)
将以下行添加到vm.hideElement函数:
$scope.active = !$scope.active;
这基本上与将active = !active
放入ng-click中相同。
另一个选择是,如果您在不想更改$ scope.active的情况下使用vm.hideElement函数,则创建一个设置$scope.active
并调用vm的新函数。 hideElement()。