在我的应用程序中,我有一个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>
知道是什么产生了这个错误或者可能是一个解决方法吗?
答案 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"
};
}