AngularJS:单选按钮在移动到下一个部分后失去价值
AngularJS: Radio buttons lost value after moving to next partial
我有一堆问题,将单选按钮作为选项。每个问题都有一个部分,每当我从一个部分移动到另一个部分时,除了最近的一个之外,我都会丢失按钮的值。我该如何解决这个问题?
部分:
<link rel="stylesheet" href="css/common.css" />
<section class="myinfo">
<center>
<a href="#details/{{prevItem}}" class="button">PREV</a>
<a href="#details/{{nextItem}}" class="button">NEXT</a>
</center>
<p class="sel">
{{questions[currItem].q}}
</p>
<ul>
<li class="optlist" ng-repeat="item in questions[currItem].opt">
<label class="formgroup">
<input type="radio" name="q" ng-click="store(item.pos, currItem)" value="{{item.pos}}" />
<span>{{item.val}}</span>
</label>
</li>
</ul>
<p class="ques">You've chosen: {{selopt}}</p>
<center>
<a ng-click="show()">Check</a>
</center>
</section>
控制器:
myApp.controller('OneController', ['$scope', '$http','$routeParams' ,function($scope, $http, $routeParams) {
$http.get('js/JOSCO.json').success(function(data) {
$scope.questions = data;
$scope.currItem= $routeParams.itemId;
$scope.parseInt = parseInt;
if ($routeParams.itemId > 0) {
$scope.prevItem = Number($routeParams.itemId) - 1;
}
else {
$scope.prevItem = $scope.questions.length - 1;
}
if ($routeParams.itemId < $scope.questions.length-1) {
$scope.nextItem = Number($routeParams.itemId) + 1;
}
else {
$scope.nextItem = 0;
}
});
$scope.ansArr = [];
$scope.store = function(pos, index) {
$scope.ansArr[index] = pos;
alert($scope.ansArr[index]);
};
$scope.show = function() {
$scope.s = "";
for (var i = 0; i < 12; i++) {
$scope.s = $scope.s + " " + $scope.ansArr[i];
}
alert($scope.s); // returns undefined for everything except the last one
};
}]);
为了设置无线电输入的值,您需要添加 ng-model:
<input type="radio" data-ng-model="item.pos"/>
每次更改当前路由(在同一层次结构中(时,都会销毁上一个控制器并创建下一个控制器,因此不会在两者之间保存该值。您可以如上所述使用服务,但您也可以将值存储在$rootScope而不是$scope中,因为它对所有应用程序都是通用的,因此您可以在转换之间获得共享数据。只需将$rootScope注入控制器并使用它:$rootScope.anyValue = val;
相关文章:
- 滚动到容器中的下一个元素-几乎到了
- 后焦点更改为IE 11中的地址栏,而不是转移到表单中的下一个控件
- 使用CSS或js,使用动态选择器选择任意li的下一个元素
- 使用ajax将数据从一个步骤发送到下一个步骤的3步表单
- AngularJS&JSON-从Previous&下一个对象
- 使用向下箭头键(与tab键一样)聚焦下一个输入
- 来自文档或下一个静态父级的事件委派
- angularjs移除焦点上的活动类并添加到下一个项目
- 禁用旋转木马中的下一个按钮和上一个按钮
- 当按下一个键时,请多次按下不同的键
- 正在加载下一个帖子
- 构建JS测试,警报窗口重复上一个Q,而不是问下一个Q
- 删除“;上一个“;以及“;下一个“;基于当前幻灯片
- 真正的下一个具有特定类的元素
- 如何使用javascript获取下一个/转发url
- jQuery转盘下一个元素没有滑入
- 简单的垂直上一个和下一个按钮代码点击上下移动jQuery
- 按下一个HTML按钮,该按钮使用一个功能在同一个新窗口中打开URL
- AngularJS:单选按钮在移动到下一个部分后失去价值
- 可访问性-失去焦点,我应该强迫焦点下一个焦点