2016-05-13 4 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» к дивы, который содержит в нг-повтор и может упасть их там, два контейнера "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], поскольку модель не будет обновляться?