ng-model在Controller上没有变化

时间:2017-06-07 19:03:57

标签: angularjs angularjs-ng-model

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

我的HTML代码:

startswith()

我的控制器js

<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>

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

1 个答案:

答案 0 :(得分:1)

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"
    };
}