我正在尝试在单击“保存”按钮时切换类,但也调用函数。我正在使用coffeescript。函数被调用但变量永远不会被设置为false。
div(ng-class="{'someclass':setListFocus}, ng-repeat="item in items")
a(ng-click="setListFocus=false;someFunction();")
span(class="gs-desktop") Save
// Delete user data.
a(ng-click="setListFocus=true")
span Edit
答案 0 :(得分:0)
我认为你的小例子缺少各种数据。
我建议使用controllerAs
,例如:
<div ng-controller="myController as vm">
然后将绑定更改为vm.setListFocus
。
或者另一种选择是改变你的控制器代码:
function myController($scope) {
$scope.list = { focus: false };
}
然后将绑定更改为list.focus
。这将解决您的范围继承问题。
答案 1 :(得分:0)
您可以通过切换someFunction()
setListFocus
$scope.someFunction = function(){
$scope.setListFocus = !$scope.setListFocus;
// ... rest of someFunction()
}
然后角度模板就是这样:
a(ng-click="someFunction()")
您可以做的另一件事是设置一个切换ListFocus函数,该函数可以使用可选的回调参数。这意味着您可以在true或false之间切换listfocus,并可选择执行另一个函数。我不打算继续回答coffeescript,因为我不熟悉,and not everyone is.
$scope.toggleListFocus = function(andThen = false){
$scope.listFocus = !$scope.listFocus;
if(andThen==false) andThen();
}
//usage..
//toggle $scope.listFocus
enter code here
a(ng-click="toggleListFocus()")
//toggle then someFunction()
a(ng-click="toggleListFocus(someFunction())")