动态添加元素后,Div-Element不会刷新

时间:2016-11-22 16:57:36

标签: javascript html ionic-framework

我正在使用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;是一个包含数据的数组。

2 个答案:

答案 0 :(得分:0)

看起来您没有触发变更检测。您应该在模板中使用ng-repeat添加元素,这些元素绑定到数组或模型上的其他可迭代项。然后,每次向iterable添加新内容时,它都会添加到视图中。

答案 1 :(得分:0)

不幸的是我甚至在另一个模板中使用了我的container-div“panel_dynamic”的id。 JavaScript正在通过getElementById获取另一个div。现在我已经改变了ID并且它有效。