sig*_*i13 0 javascript angularjs material-design
我正在尝试查看用户是否已订阅计划,如果是,请选中相应的单选按钮.
我有一组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>
Run Code Online (Sandbox Code Playgroud)
我有一个服务,从数据库中获取所有计划:
//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);
}
});
Run Code Online (Sandbox Code Playgroud)
请注意HTML中的ng-checked属性.当我查看Chrome的检查器时,它会完全吐出您在代码中看到的内容,ng-checked ="hasPlanID == planInfo._id".
如何让它识别变量值并将实际表达式解析为true或false?
得到它了.似乎ng-checked不适用于md-radio-button,它只适用于html输入.您必须使用可以计算表达式的ng-class指令将md-checked类添加到md-radio-button元素:
<md-radio-button value="{{planInfo._id}}" name="plan" class="md-primary" ng-class="{'md-checked':$parent.hasPlanID == planInfo._id}" required>
Run Code Online (Sandbox Code Playgroud)