离子 - AngularJS:离子切换不会更新模型

nol*_*oli 2 javascript angularjs ionic

我对Ionic框架中的ion-toggle指令有一个奇怪的问题.

使用像这样的离子切换:

<ion-toggle ng-model="testToggle">Test toggle</ion-toggle>
Run Code Online (Sandbox Code Playgroud)

JS:

$scope.$watch('testToggle',function(value) {
    console.log('testToggle changed to '+value);
})
Run Code Online (Sandbox Code Playgroud)

控制器根本不接收任何更新.

这是CodePen:http://codepen.io/anon/pen/jPOMqz

你会看到我添加了一个$ interval,它将绑定变量更改为random,以便看到其他所有内容都按预期工作

非常感谢你 :)

Kev*_*val 13

我曾经ng-change发现过变化; 而我正在toggleChange()改变这个职能.所以你的ion-toggle看起来像:

<ion-toggle ng-model="value" ng-change="toggleChange()">Test toggle</ion-toggle>
Run Code Online (Sandbox Code Playgroud)

并且您的控制器将更改$scope.value,因此您将获得切换的值$scope.value:

.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);
            };
        }
Run Code Online (Sandbox Code Playgroud)

这是Codepen的相同内容:http://codepen.io/keval5531/pen/LVYROp

  • 很好的解决方案,但为什么不在toggleChange函数中使用更简单的`$ scope.value =!$ scope.value`? (3认同)