离子切换值保持不变

时间:2017-03-07 13:26:49

标签: javascript angularjs

我在这里找到了这个Toggle的例子:

我将它复制到我的项目中,如

在我的app.js

app.controller('ContactCtrl', function($scope,$interval) {
 $scope.value = false;
  console.log('ContactCtrl started') ;

 $scope.toggleChange = function(){
   if($scope.value == false) {
   $scope.value = true;  
   }
   else
     $scope.value = false;
    console.log('testToggle changed to '+$scope.value);
   };
  });

在HTML中:

<ion-view title="Log in" id="page12">
  <ion-content ng-controller="ContactCtrl" padding="true" class="has-header">
    <div id="settings-markdown6" style="text-align:center;" class="show-list-numbers-and-dots">
      <p style="color:#000000;font-size:23px;">Settings</p>
    </div>

     <ion-toggle ng-model=value ng-change="toggleChange()">Test toggle</ion-toggle>

  </ion-content>
</ion-view>

问题是我正在获取控制台日志,但似乎切换始终为FALSE。每次按下切换按钮时,控制台都会报告:“testToggle已更改为false”。我没看到什么问题?

发布解决方案的更新:

Not working solution

解决方案:

app.controller('ContactCtrl', function($scope, $localStorage) {
  $scope.value = false;
  $scope.change = function() {
      console.log($scope.value);
  }
  });

<ion-toggle ng-model="value"  ng-checked="value" ng-change="change()"toggle-class="toggle-royal">Airplane Mode</ion-toggle>

2 个答案:

答案 0 :(得分:0)

您可以使用ng-click

执行此操作
<ion-toggle ng-model="value" ng-click="value = !value">Test toggle</ion-toggle>

你也不需要控制器中的任何功能。

更新:通过函数调用,它可以是:

<ion-toggle ng-model="value" ng-click="toggleChange()">Test toggle</ion-toggle>
$scope.toggleChange = function() {
    $scope.value = !$scope.value;
}

答案 1 :(得分:0)

使用ng-change更新模型

<ion-toggle ng-model="value" ng-change="toggleChange()">Test toggle</ion-toggle>

toggleChange功能代码

$scope.toggleChange = function(){
   $scope.value = !$scope.value
});