我目前有一个问题:给每个角材复选框和ID
我需要从数据库创建md-checkboxes
。这部分工作正常,ng-repeat
。但我在阅读这些复选框时遇到问题。 数据库中的每个条目都有自己唯一的ID(我正在使用RethinkDB),所以我认为我可以将其作为ID应用。
md-card(ng-repeat="n in ideas")
md-card-content
span
md-checkbox(type="checkbox" id='n.id') {{n.idea}}
我正在用Jade/Pug作为View Engine。 但是我现在怎么能够一次读出所有的复选框呢? 我尝试了很多方法,比如循环遍历所有的ElementsByTagName("md-checkbox")
,并用for来读取选中的值,但它总是返回undefined。
const checkboxes = document.getElementsByTagName("md-checkbox");
console.log(checkboxes) //works fine, prints all checkboxes
for (let i = 0; i < checkboxes.length; i++) {
console.log(checkboxes[i].checked); //returns undefined
}
你有什么想法如何一次读取所有的盒子?
编辑#1 - 更多的代码
index.js
angular.module('votes', ['ngMaterial'])
.controller("VoteMainController", function ($scope) {
$scope.safeApply = function (fn) {
var phase = this.$root.$$phase;
if (phase == '$apply' || phase == '$digest') {
if (fn && (typeof(fn) === 'function')) {
fn();
}
} else {
this.$apply(fn);
}
};
register = [];
//var to store database content and add it to page
$scope.ideas;
//Downloading Database stuff as JSON
$.ajax({
type: "GET",
url: "./api",
async: true,
success: function (content) {
for (let i = 0; i < content.length; i++) {
register.push({
[content[i].id]: {
checked: false
}
})
}
$scope.ideas = content;
$scope.safeApply();
},
});
function checkChecked() {
const checkboxes = document.getElementsByTagName("md-checkbox");
for (let i = 0; i < checkboxes.length; i++) {
console.log(checkboxes[i].checked);
}
}
})
index.jade
form(id="login" method="post")
md-card(ng-repeat="n in ideas")
md-card-content
span
md-checkbox(type="checkbox" id='n.id') {{n.idea}}
md-input-container
label Andere Idee?
md-icon search
input(name='idea', ng-model='idea', id='idea', type='text')
div(layout="column")
md-button(type='submit', class="md-raised md-primary unselectable")
| Senden!
你可以添加你的完整代码,HTML和所有?我也无法在任何地方看到你使用'scope'。 – ZombieChowder
for循环不是异步的,如果它的数据来自数据库,它应该是angular.foreach并且请添加更多代码 – alphapilgrim
@ ZombieChowder增加了更多代码! – dunklesToast