2016-05-26 2 views
-1
.controller("TasksCtrl", function ($scope, tasksFactory) { 

      $scope.tasks = tasks; 

      $scope.addNew = function(task){ 
       alert("Add new called!"); 
       $scope.tasks.push(task); 
      }; 

      $scope.remove = function(index){ 

       $scope.tasks.splice(index, 1); 
      }; 
      $scope.edit= function(task){ 
       $scope.current = task; 
      }; 
      $scope.save= function(task){ 
       $scope.current = {}; 
      }; 

     }) 

Так что я не знаю, если ошибка на заводе-изготовителе или в моем контроллерепытается вернуть массив уже заселен, но он возвращает пустую таблицу

 **.factory('tasksFactory', function(){ 
      var tasks = [ 
       { info: "Finish with the sales report for July", date:Date("October 13 ,2014 11:13:00"), hoursplanned:140, hoursworked:166 }, 
       { info: "Finish with the sales report for July", date:Date("October 13 ,2014 11:13:00"), hoursplanned:140, hoursworked:166 }, 
       { info: "Finish with the sales report for July", date:Date("October 13 ,2014 11:13:00"), hoursplanned:140, hoursworked:166 }, 
       { info: "Finish with the sales report for July", date:Date("October 13 ,2014 11:13:00"), hoursplanned:140, hoursworked:166 }, 
       { info: "Finish with the sales report for July", date:Date("October 13 ,2014 11:13:00"), hoursplanned:140, hoursworked:166 }, 
      ]; 
      return tasks; 
+0

В чем вопрос? – jlew

ответ

0

Проблема здесь вы настраиваете $ scope.tasks для задач, но задачи - это только переменная в пределах объема фабрики. В оригинальном посте, самый быстрый ответ будет просто:

$scope.tasks = tasksFactory; 

... однако, я настоятельно рекомендую вам использовать «геттер» шаблон, как это больше стандартного.

Мое предложение попробовать это:

Контроллер:

.controller("TasksCtrl", function ($scope, tasksFactory) { 

      $scope.tasks = tasksFactory.getTasks(); 

      $scope.addNew = function(task){ 
       alert("Add new called!"); 
       $scope.tasks.push(task); 
      }; 

      $scope.remove = function(index){ 

       $scope.tasks.splice(index, 1); 
      }; 
      $scope.edit= function(task){ 
       $scope.current = task; 
      }; 
      $scope.save= function(task){ 
       $scope.current = {}; 
      }; 

}) 

завод

.factory('tasksFactory', function(){ 
      var tasks = [ 
       { info: "Finish with the sales report for July", date:Date("October 13 ,2014 11:13:00"), hoursplanned:140, hoursworked:166 }, 
       { info: "Finish with the sales report for July", date:Date("October 13 ,2014 11:13:00"), hoursplanned:140, hoursworked:166 }, 
       { info: "Finish with the sales report for July", date:Date("October 13 ,2014 11:13:00"), hoursplanned:140, hoursworked:166 }, 
       { info: "Finish with the sales report for July", date:Date("October 13 ,2014 11:13:00"), hoursplanned:140, hoursworked:166 }, 
       { info: "Finish with the sales report for July", date:Date("October 13 ,2014 11:13:00"), hoursplanned:140, hoursworked:166 }, 
      ]; 

    function getTasks() { 
     return tasks; 
    } 

} 
0

TasksFactory возвращает массив. Если вы действительно хотите его использовать, попробуйте этот небольшой эксперимент - вместо tasksFactory позвоните на завод tasks. Позвольте мне знать, что происходит.