如何在 ng-click 上堆叠多个 actions/functions?
How to stack multiple actions/functions on ng-click?
这是我当前的 ng-click:
ng-click="avatarMenu = !avatarMenu"
<div class="avatar"
ng-click="avatarMenu = !avatarMenu"
ng-class="{ active: avatarMenu }">
<img src="_sources/images/joe.png" title="settings" alt="user avatar" />
</div>
现在我想创建一个 $scope 函数,它在您单击该元素时执行其他操作,尝试了以下操作,但出现错误:
ng-click="avatarMenu = !avatarMenu, getMenuClick('clicked')"
还尝试将 animation/boolean 逻辑移动到我的 app.js 中的函数中,但未定义 avatarMenu,猜测因为它不再位于 HTML 上:
$scope.avatarMenu = false;
$scope.avMenu = {};
$scope.avMenu.getMenuClick = function(the_id) {
avatarMenu = !avatarMenu
selectAddress(the_id);
};
你如何让 animate/boolean 登录和功能一样?
使用分号,而不是逗号。
avatarMenu = !avatarMenu; getMenuClick('clicked')
Controller 函数中定义的 ViewModel 变量需要在 $scope
参数上声明(就像您所做的那样),或者,如果您使用 Controller As 方法 - 作为 Controller 的 属性。
因此,使用 $scope-approach:
$scope.avatarMenu = ...;
...
$scope.avatarMenu = !$scope.avatarMenu;
并在视图中:
<div ng-class="{ active: avatarMenu }">
或者,使用 ControllerAs-approach:
this.avatarMenu = ...;
...
this.avatarMenu = !this.avatarMenu;
在视图中:
<div ng-controller="MyCtrl as vm">
...
<div ng-class="{ active: vm.avatarMenu }"></div>
</div>
请记住,归根结底,Controller 只是一个常规的 JavaScript 函数,后面没有任何 "magic"。
此外,正如另一个答案中所建议的,您也可以使用分号 ;
来分隔视图中的命令,但我会尽量减少视图中的逻辑量。
这是我当前的 ng-click:
ng-click="avatarMenu = !avatarMenu"
<div class="avatar"
ng-click="avatarMenu = !avatarMenu"
ng-class="{ active: avatarMenu }">
<img src="_sources/images/joe.png" title="settings" alt="user avatar" />
</div>
现在我想创建一个 $scope 函数,它在您单击该元素时执行其他操作,尝试了以下操作,但出现错误:
ng-click="avatarMenu = !avatarMenu, getMenuClick('clicked')"
还尝试将 animation/boolean 逻辑移动到我的 app.js 中的函数中,但未定义 avatarMenu,猜测因为它不再位于 HTML 上:
$scope.avatarMenu = false;
$scope.avMenu = {};
$scope.avMenu.getMenuClick = function(the_id) {
avatarMenu = !avatarMenu
selectAddress(the_id);
};
你如何让 animate/boolean 登录和功能一样?
使用分号,而不是逗号。
avatarMenu = !avatarMenu; getMenuClick('clicked')
Controller 函数中定义的 ViewModel 变量需要在 $scope
参数上声明(就像您所做的那样),或者,如果您使用 Controller As 方法 - 作为 Controller 的 属性。
因此,使用 $scope-approach:
$scope.avatarMenu = ...;
...
$scope.avatarMenu = !$scope.avatarMenu;
并在视图中:
<div ng-class="{ active: avatarMenu }">
或者,使用 ControllerAs-approach:
this.avatarMenu = ...;
...
this.avatarMenu = !this.avatarMenu;
在视图中:
<div ng-controller="MyCtrl as vm">
...
<div ng-class="{ active: vm.avatarMenu }"></div>
</div>
请记住,归根结底,Controller 只是一个常规的 JavaScript 函数,后面没有任何 "magic"。
此外,正如另一个答案中所建议的,您也可以使用分号 ;
来分隔视图中的命令,但我会尽量减少视图中的逻辑量。