2015-08-26 65 views
1

從一個html頁面我發送我需要在下一個html上的行數和列數。 爲同一控制器代碼:如何根據來自其他頁面的輸入動態添加行和列

.controller('decisionController', ['$scope', '$rootScope','$state', function($scope,$rootScope, $state){ 
    $rootScope.decvalues; 
    $scope.saveDecision = function(isValid){ 
     var values=[]; 
     var nameAndDec={ 
       name:$scope.model.name, 
       description:$scope.model.description, 
       input_col:$scope.no_of_input,//number of columns 
       output_col:$scope.no_of_output,//number of columns 
       rows:$scope.no_of_row,//number of rows 

     }; 
     values.push(nameAndDec); 
     $rootScope.decvalues=values[0]; 
     $state.go('rulesEditor.decisionTble'); 
    }, 

我第二次的HTML頁面我想基於從第一頁通過行和列數來創建動態表。 我想說明這種第二HTML頁面結構的行和列

enter image description here

這是我的第二個HTML頁面的給定數量:

<table border="1" cellpadding="10"> 
     <thead> 
     <tr> 
     <!--For getting a checkbox in eack row --> 
     <th ng-repeat="values in decvalues.rows"> 

      </th> 
<!--Add number of input columns header as per input got from first page --> 
      <th ng-repeat="values in decvalues.input_col"> 
      (I) &lt;enter data&gt;&nbsp;<input type="checkbox"></input> 
      </th> 
<!--Add number of output columns header as per input got from first page --> 
      <th ng-repeat="values in decvalues.output_col" > 
      (O) &lt;enter data&gt;&nbsp;<input type="checkbox"></input> 
      </th> 
     </tr> 
     </thead> 
     <tbody> 
<!--Add number of rows as per input got from first page --> 
    <tr ng-repeat="row in decvalues.rows"> 
     <td ng-repeat="col in decvalues.input_cols"> 
    (I) &lt;enter data&gt; 
    </td> 
    <td ng-repeat="col in decvalues.output_cols"> 
    (O) &lt;enter data&gt; 
    </td> 

     </tbody> 
    </table> 

我在得到這個值我控制器,但在我的第二頁桌上沒有生成

enter image description here 我試了很多東西,但它不工作,任何人都可以請建議如何實施th正在使用角度。 這將是一個很大的幫助

+0

我不知道你在哪裏卡住了:從傳遞模型一個控制器到下一個或繪製表? – Sphaso

+0

我被困在用動態行和列繪製表格 –

+0

剛看到你的第二個編輯。在這一點上,我認爲這將有助於理解你的模型是如何構建的。請參閱我的答案,看看你是否可以做類似的事情(不考慮這個問題,你似乎已經涵蓋了這個問題) – Sphaso

回答

2

ng-repeat來救援!

<table> 
    <thead> 
    <tr> 
     <td ng-repeat="header in model.headers">{{header.title}}</td> 
    </tr> 
    </thead> 
    <tbody> 
    <tr ng-repeat="row in decvalues.rows track by $index"> 
     <td ng-repeat="col in decvalues.input_cols track by $index"> 
     // stuff 
     </td> 
     <td ng-repeat="col in decvalues.output_cols track by $index"> 
     //stuff 
     </td> 
    </tr> 
    </tbody> 
</table> 

奧斯汀指出,還需要你的模型改成這樣:

var nameAndDec={ 
       name:$scope.model.name, 
       description:$scope.model.description, 
       input_col:new Array($scope.no_of_input),//number of columns 
       output_col:new Array($scope.no_of_output),//number of columns 
       rows:new Array($scope.no_of_row),//number of rows 

     }; 

爲了迭代

+0

我在[一個Plunker](http://plnkr.co/edit/UwCyueLhb6bbdIuei0D7?p=預覽)並且遇到了這樣的問題:ng-repeat不喜歡數據源數組中重複的未定義實例。您可能需要一個創建空對象的循環。更好的是,循環可以實例化有意義的數據對象。 –

+0

哦,我不知道,太糟糕了。我同意你的評論。既然你已經循環了,你也可以製作一系列數字。我只希望有一種方法可以在Haskell \ Python中執行列表理解:\我將在編輯之前等待OP反饋 – Sphaso

+2

@Austin Mullins這是在ng-repeat結束時用$ index添加軌道的好方法: ng-repeat =「col in decvalues.output_cols track by $ index」 – ThibaudL

0

您的問題很難解釋,如果問題是你沒有成功創建一個動態表,請告訴我們你試圖做什麼。 否則我會sugest你創建一個表模板,2納克重複

<table> 
    <tr ng-repeat="rows"> 
     <td ng-repeat="columns"></td> 
    </tr> 
</table> 
+0

我能夠獲取第二頁上的數據,但我目前面臨的問題是我無法生成動態表中傳遞了動態的行數和列數。 –

+0

然後顯示你的第二頁的代碼不是第一頁。如果數據不是問題,請不要顯示如何發送它。 – ThibaudL

+0

添加了第二頁的代碼,請糾正我的錯誤。 –

相關問題