2016-05-13 60 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]作为模型不会更新吗?