我使用$scope.checked
来显示/隐藏" Top"我的HTML中的文本框name="numRows"
。
然而,即使我点击顶部'单选按钮,$scope.checked
始终保留“全部”的值。当我调试我的控制器代码时。
这个简单的plunker似乎工作正常,http://plnkr.co/edit/6GoUZw7zkf8oqUmKg9hf?p=preview,但它在我的应用程序中不起作用。
在plunker中,有一个简单的按钮,其点击值将点击控制器事件$scope.showval
以显示" top"的值。或者"所有"。
我的HTML:
<div class="form-group">
<div class="row-fluid">
<label class="col-md-2 col-lg-2 control-label" for="numRows">Returned Rows</label>
<!-- ALL ROWS RADIO -->
<div class="col-md-1 col-lg-1">
<label class="radio-inline" for="radio-all">
<input name="radios" id="radio-all" value="all" type="radio" ng-model="checked" ng-click="setTopRows('all')">All
</label>
</div>
<!-- TOP NUM OF ROWS RADIO -->
<div class="col-md-1 col-lg-1">
<label class="radio-inline" for="radio-top">
<input name="radios" id="radio-top" value="top" type="radio" ng-model="checked" ng-click="setTopRows('top')">Top
</label>
</div>
<!-- NUM OF ROWS TEXT BOX -->
<div class="col-md-2">
<input ng-show="checked == 'top'" ng-hide="checked == 'all'" type="text" class="form-control" name="numRows" ng-model="settings.numRowsReturned" placeholder="" >
</div>
<div class="col-md-3">
Click to show<input type="button" ng-click="showval(e)">
</div>
</div>
</div>
&#13;
我的角度控制器代码的片段:
$ scope.checked值始终是&#39; all&#39;,即使我点击了&#39; top&#39;来自html。
(function () {
'use strict';
angular.module('rage')
.controller('GadgetSettingsCtrl_NEW', ['$rootScope', '$scope', '$modalInstance', gridSettings]);
function gridSettings($rootScope, $scope, $modalInstance,) {
var settings = this;
$scope.checked = 'all';
$scope.showval = function (e) {
var test = $scope.checked;
}
$scope.setTopRows = function (numRows) {
if (numRows === 'top') {
$scope.checked = 'top';
}
else {
$scope.checked = 'all';
}
}
function checkOptions(){
var top = '';
if ($scope.checked === 'top') {
top = (settings.numRowsReturned != undefined ? settings.numRowsReturned : '');
}
}
}; // end of gridSettings()
})();
&#13;
当有人点击单选按钮时,有人可以帮我解决为什么$ scope.checked没有改变吗?
谢谢你, 鲍勃 ****** UPDATE *********
我添加了一个简单的ng-click="setTopRows('all')"
来强制我的范围变量进行更改。这样可行,但似乎有太多代码可以实现这一目标。