我正在使用Ionic-app。 在我的一个页面上,我将元素动态添加到div元素。 添加了元素,但我无法在页面上看到它们。 在点击F5并再次运行控制器代码后,我可以看到它们。
以下是添加元素的代码:
if ($scope.eigenschaften != null) {
//TODO Eigenschaften in Loop durchgehen und auf panel_dynamic Controls erzeugen
var panel_dynamic = document.getElementById('panel_dynamic');
if (panel_dynamic.hasChildNodes()) {
panel_dynamic.removeChild(panel_dynamic.childNodes[0]);
}
var content = document.createElement('div');
for (n = 0; n <= $scope.eigenschaften.length - 1; n++) {
// Creates a new div with controls
var line = document.createElement('div');
var para = document.createElement('p');
// Creates a div-row
var div_row = document.createElement('div');
div_row.setAttribute('class', 'row');
// Creates a div-col with label
var div_col_label = document.createElement('div');
div_col_label.setAttribute('class', 'col');
div_col_label.appendChild(CreateLabel('font-size:16px;font-weight:bold;', $scope.eigenschaften[n].name));
div_row.appendChild(div_col_label);
// Creates a div-col with control
var div_col_control = document.createElement('div');
div_col_control.setAttribute('class', 'col');
div_col_control.appendChild(CreateTextbox());
div_row.appendChild(div_col_control);
// Adds the div-row to the para
para.appendChild(div_row);
// Adds the new para to the line
line.appendChild(para);
// Adds the new line to the content
content.appendChild(line);
}
// Adds the content-div to panel_dynamic
panel_dynamic.appendChild(content);
}
&#34; eigenschaften&#34;是一个包含数据的数组。
答案 0 :(得分:0)
看起来您没有触发变更检测。您应该在模板中使用ng-repeat
添加元素,这些元素绑定到数组或模型上的其他可迭代项。然后,每次向iterable添加新内容时,它都会添加到视图中。
答案 1 :(得分:0)
不幸的是我甚至在另一个模板中使用了我的container-div“panel_dynamic”的id。 JavaScript正在通过getElementById获取另一个div。现在我已经改变了ID并且它有效。