Values are not automatically assigning in checkbox
我有一个显示停用帐户的复选框,当在请求中选中该复选框时,我需要将activationstatus 发送为 false 以显示停用帐户,当未选中时,它应该将值传递为 true。我的复选框只是在初始化 $scope.checkedStatus = true 后传递了相同的值。值没有传递为 false。
HTML :
1 2 | <input type="checkbox" ng-model="checkedStatus" ng-click ="viewAccount"> Show Deactivated Account |
JS:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | $scope.checkedStatus = true; $scope.viewAccount = function(){ var json = { "json": { "request": { "servicetype":"6", "functiontype":"6014", "session_id": $rootScope.currentSession, "data": { "shortname": $scope.model.selectShortName, "groupzname": $scope.model.selectGname, "city": $scope.model.selectCity, "state": $scope.model.selectState, "country": $scope.model.selectCountry, "groupzcode": $scope.model.selectGcode, "activationstatus": !($scope.checkedStatus), "details": false, "sortbasedon": $scope.groupzname, "orderby":"desc", "offset":$scope.pagination } } } }; UserService.viewListAccount(json).then(function(response) { if (response.json.response.statuscode == 0) { $scope.tableData = response.json.response.data; } }); }; |
自动复选框不会改变值。
对于复选框,Angular 有一个名为
1 2 | <input type="checkbox" ng-model="checkedStatus" ng-change="viewAccount()"> Show Deactivated Account |
在 $scope 中创建一个package对象模型并在其中创建 checkedStatus 属性。
1 2 3 | $scope.model = { checkedStatus: true }; |
并在其引用的地方进行相关更改。
像在 html 中做这些改变
1 | ng-click="viewAccount()" ng-model="model.checkedStatus" |
另外作为一个附注,你不应该直接在作用域上附加属性,并且总是尝试创建一个package对象或使用控制器作为语法来摆脱这些问题。
查看这篇文章:AngularJS:如果你没有点,那么你做错了 - 更多信息请访问:http://zcourts.com/2013/05/31/angularjs-if-你做错了/#sthash.NDNvWL5E.dpuf
在您的 json 中,您只是否定
您可以更改范围值,而不是在 json 中使用
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | $scope.checkedStatus = true; $scope.viewAccount = function(){ $scope.checkedStatus = !$scope.checkedStatus; //check this line var json = { "json": { "request": { "servicetype":"6", "functiontype":"6014", . . "activationstatus": $scope.checkedStatus, . . "orderby":"desc", "offset":$scope.pagination } } } }; |
你可以使用
ng-change
在输入中。
在这里你可以用 html 来做。
1 2 | <input type="checkbox" ng-model="checkedStatus" ng-click ="viewAccount" ng-change="change()"> Show Deactivated Account |
这是您在控制器中访问它的方式。
1 2 3 | $scope.change = function() { $scope.viewAccount(); } |