md单选按钮未识别ng已选中
md-radio-button not recognizing ng-checked
我正在尝试查看用户是否已经订阅了计划,如果已经订阅,请检查相应的单选按钮。
我有一组md单选按钮,我正在用ng repeat:创建
<md-radio-group class="md-primary" ng-model="plan">
<div flex ng-repeat="planInfo in plans" class="plan-options">
<md-radio-button value="{{planInfo._id}}" name="plan" class="md-primary" ng-checked="hasPlanID == planInfo._id" required>
<h2 class="plan-name">{{planInfo.name}}</h2>
<h3 class="plan-price">${{planInfo.price}}</h3>
</md-radio-button>
</div>
</md-radio-group>
我有一个从数据库中获取所有计划的服务:
//check to see if user already has a plan
MyService.GetPlan(currentUser.username).then(function (response) {
if (response.success) {
//This does resolve correctly
$scope.hasPlanID = response.data.plan;
MyService.GetAllPlans().then(function (response) {
if (response.success) {
//plans display properly
$scope.plans = response.data;
} else {
$log.debug(response.message);
}
});
} else {
$log.debug(response.message);
}
});
请注意HTML中的ng-checked属性。当我查看Chrome的检查器时,它会准确地显示出你在代码中看到的内容,ng-checked="hasPlanID==planInfo_id"。
如何让它识别变量值并将实际表达式解析为true或false?
明白了。看起来ng-checked不适用于md单选按钮,它只适用于html输入。您必须使用ng class指令将md选中的类添加到md单选按钮元素中,该指令可以计算表达式:
<md-radio-button value="{{planInfo._id}}" name="plan" class="md-primary" ng-class="{'md-checked':$parent.hasPlanID == planInfo._id}" required>
您不应该手动处理该检查。不填充$scope.hasPlanID
属性,只需将$scope.plan
设置为当前计划,如下所示:
//check to see if user already has a plan
MyService.GetPlan(currentUser.username).then(function (response) {
if (response.success) {
//This does resolve correctly
$scope.plan = response.data.plan;
MyService.GetAllPlans().then(function (response) {
if (response.success) {
//plans display properly
$scope.plans = response.data;
} else {
$log.debug(response.message);
}
});
} else {
$log.debug(response.message);
}
});
这应该会自动处理检查,因为您的模型设置为$scope.plan
:
<md-radio-group class="md-primary" ng-model="plan">
$scope.sel = 'lu';
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<md-radio-group ng-model="sel" ng-change="logos()" ng-model="myValue" class="settings-radio-button" layout="row">
<md-radio-button value="lu" ng-checked="true" class="md-primary">Upload With URL</md-radio-button>
<md-radio-button value="li" class="md-primary">Select Logo Image</md-radio-button>
</md-radio-group>
如果您想将单选按钮检查为 md-radio-button
,请使用 ng-value
而不是不带 ng-checked
的 value
,例如
<md-radio-group class="md-primary" ng-model="plan">
<div flex ng-repeat="planInfo in plans" class="plan-options">
<md-radio-button ng-value="planInfo._id" name="plan" class="md-primary" ng-checked="hasPlanID == planInfo._id" required>
<h2 class="plan-name">{{planInfo.name}}</h2>
<h3 class="plan-price">${{planInfo.price}}</h3>
</md-radio-button>
</div>
</md-radio-group>
此代码段将对计划的值进行建模,并根据planInfo的值选择适当的单选按钮_id。
希望这会有所帮助!
相关文章:
- ng映射方向备选方案
- AngularJS UI路由器不能像ng路由器那样工作
- 角度:在ng重复上切换图像
- 正在使用$location.path(.)路由ng视图
- 如何识别我的网站中的慢速设备
- AngularJS:ng之后,重复$scope值未按预期更新
- ng打开空字符串
- 我应该使用Ng提交还是点击表格
- ng init中的表达式无法使用ng repeat
- ng更改事件不适用于Dropdown
- Google/html5语音识别JavaScript SDK Chrome网络工具包SpeechRecognition
- ng视图外的链接重定向到ng视图内的页面
- 角度.js - 识别通过路由或 ng 控制器调用的控制器
- ng使用一个不识别临时变量形式ng repeat的函数绑定html
- ng-click无法识别表中的更改
- AngularJS:为什么我的指令作为ng-class指定的类不被识别
- 在ng视图中无法识别Typeahead
- md单选按钮未识别ng已选中
- 从HTML5 localstorage json读取,在highcharts-ng中不识别
- AngularJS的ng-focus和ng-blur无法识别