2016-11-22 94 views
0

我正在開發Ionic-app。 在我的一個頁面上,我將元素動態添加到div元素。 元素已添加,但我無法在頁面上看到它們。 只需點擊F5並再次運行控制器代碼,我就可以看到它們。動態添加元素後Div-Element不刷新

下面的代碼,用於將元素:

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); 
    } 

「eigenschaften」是與數據的數組。

回答

0

不幸的是,即使在另一個模板中,我也使用了id作爲我的container-div「panel_dynamic」。而JavaScript通過getElementById獲得其他div。現在我已經改變了ID,它的工作原理。

0

它看起來像你沒有觸發變化檢測。您應該在模板中使用ng-repeat添加元素,該模板綁定到數組或模型上的其他迭代器。然後每次添加新的迭代器時,它都會添加到視圖中。