2016-05-13 48 views
0

我正在使用角拖動一個小測試代碼,我設法得到拖放的東西工作,但它不更新源數據數組。Dragula模型沒有更新源數組

我聲明在角度控制器的一些變量:

$scope.todos=['Stuff','Thangs']; 
$scope.plan=new Array(($scope.endTime - $scope.startTime)*(60/$scope.timeBlock)); 

for(var i=0;i<$scope.plan.length;i++){ 
    $scope.plan[i]=["-"]; 
} 

這也許是不HTE初始化最佳方式,但我得到數組的數組,每個包含一個「佔位符」字符。

的HTML然後繪製了這一點:

<div ng-app='dayplannerApp' ng-controller="MainCtrl"> 
    <div class='wrapper'> 
    <button ng-click='dump()'>Dump</button> 
    <div class='container' id='source-box' dragula='"first-bag"' dragula-model='todos'> 
    <div id="source" ng-repeat='text in todos' ng-bind='text'></div> 
    </div> 
    <hr> 
    <div class='container'><pre>{{plan[0] | json}}</pre></div> 
    <div class='container'><pre>{{plan[1] | json}}</pre></div> 
    <hr> 
    <table ng-repeat="n in Range()" border='1'> 
    <tr ng-class-odd="'odd'" ng-class-even="'even'" ><td width='20%'>{{n}}</td><td> 
     <div class='container' dragula='"first-bag"' dragula-model='plan[$index]'> 
     <div ng-attr-id="{{ 'block-' + n}}" ng-repeat='text in plan[$index]' ng-bind='text' ng-click='setId($event)'></div> 
     </div></td></tr> 
    </table> 
</div> 
    </div> 

這似乎是工作,我可以拖動「東西」或「thangs」到包含NG重複並在那裏把它們的div中,如果我把東西放在前兩行,兩個「pre」容器就會更新。

但是,當我嘗試轉儲底層「規劃」陣:

console.log($scope.plan); 

我只是得到陣列的原始數組只用佔位符。我在做模型任務時出錯了嗎?或綁定?爲什麼計劃[1]在div中更新,但不是在javascript中?

回答

0

我設法做的是重新寫有:

for (var hour = $scope.startTime; hour < $scope.endTime; hour++) { 
     for (var mins = 0; mins < 60; mins+=$scope.timeBlock){ 
     var minVal = mins; 
     if (mins===0){ 
      minVal='00'; 
     } 
     result.push(
      { 
      'Time': hour + ':' + minVal, 
      'ToDo': [] 
      }); 
     } 
    } 
    return result; 

然後我用這作爲源:

<table border=1 style="table-layout:fixed;"> 
     <tr><th width='10%'>Time</th><th width='80%'>Activity</th><th width='5%'>Drop here</th></tr> 
     <span> 
     <tr ng-repeat="n in Day" ng-class-odd="'odd'" ng-class-even="'even'" > 
      <td width='20%'>{{n.Time}}</td> 
      <td width='80%'>{{n.ToDo[0]}}</td> 
      <td width='10%' style='background-color:black;overflow:hidden' class='container' dragula='"first-bag"' dragula-model='n.ToDo'> 
       {{n.ToDo}} 
      </td> 
     </tr> 
     </span> 
     </table> 

不能確定的問題是什麼。這個計劃[$ index]作爲模型不會更新嗎?