загрузка данных с использованием ng-таблицы - PullRequest
0 голосов
/ 17 февраля 2020

Я пытаюсь отобразить набор данных с помощью таблицы ng. но данные не загружаются. пожалуйста, проверьте мой пример сервиса и контроллера

app.service('ContactService', function () {
    var bfLosses = [ 
        { idx: 0, uid: 'User 11', name: 'Name 11', area: 'Area 1'},
        { idx: 1, uid: 'User 12', name: 'Name 12', area: 'Area 1'},
        { idx: 2, uid: 'User 21', name: 'Name 21', area: 'Area 2'},
        { idx: 3, uid: 'User 22', name: 'Name 22', area: 'Area 2'}
    ];    
}

мне нужно получить доступ к массиву выше, чтобы заполнить таблицу. мой контроллер

app.controller("businessController", function ($scope,NgTableParams,ContactService){
    $scope.tableParams = new NgTableParams({
        group: "area"
      },{
        dataset:   $scope.bfLosses
    });    
});

, когда определить массив внутри контроллера, работает хорошо. но мое требование - доступ к нему внутри контроллера.

Ответы [ 2 ]

0 голосов
/ 18 февраля 2020

Вы также можете использовать 'this' в случае обслуживания, а не на фабриках

app.service('ContactService', function () {
this.bfLosses = [ 
    { idx: 0, uid: 'User 11', name: 'Name 11', area: 'Area 1'},
    { idx: 1, uid: 'User 12', name: 'Name 12', area: 'Area 1'},
    { idx: 2, uid: 'User 21', name: 'Name 21', area: 'Area 2'},
    { idx: 3, uid: 'User 22', name: 'Name 22', area: 'Area 2'}
  ];
});

Контроллер:

app.controller("businessController", function ($scope,NgTableParams,ContactService){
  $scope.tableParams = new NgTableParams({
    group: "area"
  },{
    dataset:   ContactService.bfLosses
  });
});
0 голосов
/ 17 февраля 2020

Служба должна возвращать ссылку:

app.service('ContactService', function () {
    var bfLosses = [ 
        { idx: 0, uid: 'User 11', name: 'Name 11', area: 'Area 1'},
        { idx: 1, uid: 'User 12', name: 'Name 12', area: 'Area 1'},
        { idx: 2, uid: 'User 21', name: 'Name 21', area: 'Area 2'},
        { idx: 3, uid: 'User 22', name: 'Name 22', area: 'Area 2'}
      ];
    return {
      bfLosses: bfLosses 
    };
}

Служба должна быть доступна по введенной вами зависимости:

app.controller("businessController", function ($scope,NgTableParams,ContactService){
    $scope.tableParams = new NgTableParams({
        group: "area"
      },{
        dataset:   ContactService.bfLosses
      });
});
...