angularjs - 从过滤对象数组的属性中设置 ng-model
问题描述
我有以下内容:
<div ng-repeat="scale in LookUpData.AnswerScales | filter:{AnswerScaleTypeId:question.AnswerScaleTypeId}">
<label>
<input type="radio"
name="QuestionCategoryId{{question.QuestionId}}"
ng-value="scale.AnswerScaleId"
ng-model="(ViewModel.Answers | filter:{QuestionId:question.QuestionId}).AnswerScaleId"
ng-change="scaleQuestionChanged(question.QuestionId, scale.AnswerScaleId)">
{{scale.Description}}
</label>
</div>
我的问题是关于这条线:
ng-model="(ViewModel.Answers | filter:{QuestionId:question.QuestionId}).AnswerScaleId"
ViewModel.Answers 是一个列表,我需要通过 QuestionId 动态过滤它,然后返回 AnswerScaleId 来设置 ng-model。这是行不通的。这可能吗?
解决方案
您必须将 ng-model 视为要在其中分配值的“变量”...
我的意思是,如果您有一组单选按钮并且这些按钮用于性别选择,那么 ng-model 应该类似于
<label>
<input type="radio" ng-model="user.gender" value="male">
Male
</label><br/>
<label>
<input type="radio" ng-model="user.gender" ng-value="dataOrFunction">
Female
</label><br/>
所以,换句话说(对我来说)你必须在 ng-model (你的变量名)中使用一个“静态值”,然后你要去分配给那个变量,无论你想要什么值......所以,你put in value 是将分配给您的 ng 模型的内容。
如果您想在那里使用动态值,请使用 ng-value 而不是 value。
Angularjs ng-model 官方文档https://docs.angularjs.org/api/ng/directive/ngModel
推荐阅读
- java - 为什么虚拟线程(仅在短时间内休眠)会提高另一个线程的性能?
- puppeteer - Puppeteer:在 page.evaluate 中使用函数
- javascript - 如何从 promise 返回值并在另一种方法中使用它?
- kubernetes - 在 Prometheus Alertmanager 上设置 MicrosoftTeams 通知
- android - 以编程方式检查是否启用了 firebase/GCM 消息传递
- angular - 用旋钮改变 observable 的值
- angular - 离子输入验证(ng-invalid)/控制保持 ng-untouched - 必须取消选择两次
- java - 如何单击位于方法以外的其他类中的按钮
- javascript - 如何将值设置为角度输入
- docker - 使用 docker-compose 从私有仓库通过 ssh 构建映像时主机密钥验证失败