ng-model 在 Controller 上没有改变

ng-model not changing on Controller

在我的应用程序中,我有一个 div,其中的内容取决于收音机的值。当我点击一个按钮时,这个值在我的控制器中被初始化,当我再次点击他时它应该被重置。我的问题是,在值初始化后,我可以使用无线电更改它,但是当我调用该函数时它不会改变。

我的html代码:

<div>  
    <div ng-if="pageType=='select'">
        <label><input type="radio" ng-model="pageType" value="valueA">Value A</label>
        <label><input type="radio" ng-model="pageType" value="valueB">Value B</label>   
    </div>
    <div ng-if="pageType=='valueA'">
        <div ng-controller="valueAController">
            <div ng-include="'views/valueA.html'"></div>
        </div>   
    </div>
    <div ng-if="pageType=='valueB'">
        <div ng-controller="valueBController">
            <div ng-include="'views/value.html'"></div>
        </div>   
    </div>      
</div>

我的控制器 js

$scope.resetValue= function () {
    $scope.pageType= "select";
}

知道是什么产生了这个错误或者可能有解决方法吗?

ngIf 正在创建隔离作用域,因此它现在有自己的 pageType 版本。如果您将 pageType 嵌套在 $scope 对象上的另一个级别,它应该可以工作。

<div>  
    <div ng-if="pageType=='select'">
        <label><input type="radio" ng-model="magicDot.pageType" value="valueA">Value A</label>
        <label><input type="radio" ng-model="magicDot.pageType" value="valueB">Value B</label>   
    </div>
    <div ng-if="magicDot.pageType=='valueA'">
        <div ng-controller="valueAController">
            <div ng-include="'views/valueA.html'"></div>
        </div>   
    </div>
    <div ng-if="magicDot.pageType=='valueB'">
        <div ng-controller="valueBController">
            <div ng-include="'views/value.html'"></div>
        </div>   
    </div>      
</div>

在你的控制器中

$scope.resetValue= function () {
    $scope.magicDot = {
      pageType: "select"
    };
}