Javascript 使用ng模型预加载复选框
我试图用一系列复选框构建一个表单,这些复选框表示数据库中两个模型之间的多态关联。我有Javascript 使用ng模型预加载复选框,javascript,angularjs,modal-dialog,Javascript,Angularjs,Modal Dialog,我试图用一系列复选框构建一个表单,这些复选框表示数据库中两个模型之间的多态关联。我有工作描述和经验级别。该表单用于更新工作描述,并为每个体验级别设置一个复选框。当表单以模式打开时,我希望检查与工作相关的当前经验级别 我一直在努力找出如何使用ng repeat和ng model实现复选框。我的当前代码呈现复选框,但未预先选择正确的复选框 这是我的控制器中的editJob方法: $scope.editJob = function(r) { var experienceLevels = {}
工作描述
和经验级别
。该表单用于更新工作描述
,并为每个体验级别
设置一个复选框。当表单以模式打开时,我希望检查与工作相关的当前经验级别
我一直在努力找出如何使用ng repeat
和ng model
实现复选框。我的当前代码呈现复选框,但未预先选择正确的复选框
这是我的控制器中的editJob
方法:
$scope.editJob = function(r) {
var experienceLevels = {};
r.experience_levels.map(function(r, i){
experienceLevels[i] = r.name;
});
$scope.experienceLevels = experienceLevels;
$scope.id = r.id;
$scope.title = r.title;
$scope.jobFunction = r.role;
$scope.description = r.description;
$scope.postingLink = r.posting_link;
$scope.company = r.company_name;
var modalInstance = $modal.open({
templateUrl: '/assets/admin/editjob.html',
controller: ModalInstanceCtrl,
scope: $scope,
resolve: {
jobForm: function () {
return $scope.jobForm;
}
}
});
};
这是我表格中带有复选框的部分:
<div class="form-group">
<label>Experience Level</label>
<div ng-repeat="experienceLevel in expItems">
<input type="checkbox" name="experienceLevel.display"
ng-model="job.experienceLevels['experienceLevels']"
ng-true-value="experienceLevel">
{{experienceLevel.display}}
</div>
</div>
经验水平
{{experienceLevel.display}
我仍然不知道如何预先选择复选框。他们似乎不受模型的约束。我找到了解决问题的方法。我不知道这是否是一个好的实践(希望得到反馈),但它似乎按照我想要的方式工作 在我的控制器中,我现在预先分配体验级别,如下所示:
$scope.editJob = function(r) {
var experienceLevels = {};
r.experience_levels.map(function(r){
experienceLevels[r.name] = "true";
});
在我的表单上,我决定绑定到experienceLevel.display
,而不是experienceLevel.key
,如下所示:
<label>Experience Level</label>
<div ng-repeat="experienceLevel in expItems">
<input type="checkbox" name="experienceLevel.display" ng-model="job.experienceLevels[experienceLevel.display]" ng-true-value="true" ng-false-value="false">
{{experienceLevel.display}}
</div>
然后,我可以在Rails控制器中按名称查找
ExperienceLevel
我们能看到HTML吗?我认为您的问题可能不涉及服务器对象,而只涉及Javascript和HTML。我只是用呈现的HTMLOk编辑了我的问题,因为您已经解决了部分问题,所以我将编辑该问题,以仅包含与剩余问题相关的信息。好的,我编辑了该问题。如果我把事情弄糟了,请把它修好。作为将来的参考,没有必要在文章中包含“更新”。任何想要查看更新的人都将查看修订历史记录。
{
"id"=>"23",
"title"=>"Ruby Ninja",
"jobFunction"=>"Customer Support",
"description"=>"Awesomesauce!",
"postingLink"=>"http://www.google.com/",
"experienceLevels"=>{
"Entry Level"=>"false", "Manager"=>"true"
},
"company"=>"Ice 2 Go",
"action"=>"update",
"controller"=>"admin/job_descriptions",
"job_description"=>{
"id"=>23, "title"=>"Ruby Ninja", "description"=>"Awesomesauce!"
}
}