1

分配我有一個複選框,以顯示停用的帳戶,當請求被選中的複選框我需要發送activationstatus虛假用於顯示禁用帳戶,未選中時,它應該通過價值爲真。我的複選框只是在初始化$ 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; 
         } 
       }); 
     }; 

自動複選框是不會改變的價值。

回答

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 
      } 

     } 
    } 
}; 
0

您可以輸入使用

NG-變化

。 在這裏你可以在html中完成。

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

您將如何在控制器中訪問它。

$scope.change = function() { 
    $scope.viewAccount(); 
} 
+0

這會帶來什麼變化,反正它指的是相同的功能儀式? –

+0

是的。你可以安慰checkedStatus的輸出在功能 –

+0

這裏是樣品(的jsfiddle)http://jsfiddle.net/cLenjedL/7/ –

0

創建一個包裝對象,在$範圍模式並在其中創建checkedStatus財產。

$scope.model = { 
    checkedStatus: true 
}; 

並在其引用的地方進行相關更改。

HTML類似,這些更改

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

另外,作爲一個側面說明,你不應該直接連上作用域屬性,總是嘗試創建一個包裝對象或使用控制器的語法來擺脫這種的問題。

看看這篇文章:AngularJS: If you don't have a dot, you're doing it wrong - See more at: http://zcourts.com/2013/05/31/angularjs-if-you-dont-have-a-dot-youre-doing-it-wrong/#sthash.NDNvWL5E.dpuf

0

對於複選框角已經特殊指令稱爲ng-change使用,來代替。

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