我有一个简单的Angular / Ionic页面:

<ion-view ng-controller="HomeController">
    <ion-content has-header="true" padding="true">
        <ion-toggle ng-model="shareLoc" ng-change="shareLocChange()" toggle-class="toggle-stable">Share location</ion-toggle>
       Current value: {{shareLoc}}
    </ion-content>
</ion-view>

在 Controller 中,当值更改时,我将打印复选框的值:
angular.module('ionicApp', ['ionic'])

.controller("HomeController", function ($scope) {
    console.log('HomeController');
    $scope.shareLoc = false;
    $scope.shareLocChange = function() {
        console.log($scope.shareLoc);
    };
});

但这不起作用!我可以将其绑定(bind)到其他HTML字段中(如上所示),但是由于某种原因,每当我在代码中访问它时,它都会返回false(或在 Controller 初始化中设置的任何值)。我是否以错误的$scope或其他东西结束了?

http://codepen.io/pugwonk/pen/OVymYv的示例

最佳答案

好像ion-view会创建一个隔离的范围,因此,如果您传递原始参数,它将按值复制它,并且当它更改时-原始参数将保持不变。

另一方面-如果您将一个对象作为参数传递,则两个作用域将能够使用相同的副本。

您可以看到不同的作用域ID和对象here的传递。

09-25 19:50