1

我有一个复选框来显示停用帐户,当在请求中选中复选框时,我需要将activationstatus 发送为 false 以显示停用帐户,当未选中时,它应该将值传递为 true。我的复选框只是在初始化 $scope.checkedStatus = true 后传递了相同的值。值没有传递为 false。

HTML:

<div>
<input type="checkbox" ng-model="checkedStatus" ng-click = "viewAccount">
  Show Deactivated Account
</div> 

JS:

 $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; 
                        }
                }); 
        };

自动复选框不会更改值。

4

4 回答 4

0

您可以使用

ng-改变

在输入。在这里你可以用 html 来做。

<input type="checkbox" ng-model="checkedStatus" ng-click = "viewAccount" ng-change="change()">
  Show Deactivated Account
</div> 

这就是您在控制器中访问它的方式。

$scope.change = function() {
  $scope.viewAccount();
}
于 2016-09-23T06:32:18.973 回答
0

对于复选框,angular 有一个特殊的指令,叫做ng-changeuse that。

<div>
   <input type="checkbox" ng-model="checkedStatus" ng-change="viewAccount()">
   Show Deactivated Account
</div> 
于 2016-09-23T07:25:25.613 回答
0

在 $scope 中创建一个包装对象模型并在其中创建 checkedStatus 属性。

$scope.model = {
    checkedStatus: true
};

并在其引用的地方进行相关更改。

就像在 html 中做这些改变

ng-click="viewAccount()" ng-model="model.checkedStatus"

另外作为旁注,您不应该直接在作用域上附加属性,并且始终尝试创建包装器对象或使用控制器作为语法来摆脱此类问题。

看看这篇文章:AngularJS:如果你没有点,你做错了 - 更多信息请访问:http://zcourts.com/2013/05/31/angularjs-if-you-dont-have -a-dot-youre-doing-it-wrong/#sthash.NDNvWL5E.dpuf

于 2016-09-23T07:11:05.370 回答
0

在您的 json 中,您只是否定$scope.checkedStatus但不改变它的值。所以总是你得到相同的结果。您可以更改范围值
, 而不是在您的 json 中使用。!($scope.checkedStatus)

 $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
             }

      }
    }
};
于 2016-09-23T07:03:05.763 回答