2016-12-09 14 views
0

У меня объявлена ​​функция, чтобы получить имя WCF Rest имя: service.js, url получить данные Json. Затем я создаю другую функцию, чтобы получить данные entryCtrl.js затем показать HTMLКак создать функцию для получения данных из WCF Rest, затем отобразить в таблицу

service.js

(function (app) { 
    app.service("CRUD_AngularJs_RESTService", function ($http) { 
    this.getAllEntry = function() { 
     return $http.get("http://localhost:51458/ServiceRequest.svc/GetAllRequest/"); 
    }; 
    }); 
})(angular.module('model')); 

entryCtrl.js

(function (app) { 
    'use strict'; 
    app.controller('entryCtrl', entryCtrl); 
    entryCtrl.$inject = ['$scope']; 
    function entryCtrl($scope) { 
     $scope.pageClass = 'page-entry'; 
     $scope.GetAllRecords = function() { 
      var promiseGet = CRUD_AngularJs_RESTService.getAllEntry(); 
      promiseGet.then(function (pl) { $scope.EntryData = pl.data }, 
       function (errorPl) { 
        $log.error('Some Error in Getting Records.', errorPl); 
       }); 
     } 
    } 
})(angular.module('model')); 

вид entry.html

<table data-ng-controller="entryCtrl"> 
    <tbody data-ng-repeat="entry in EntryData"> 
    <tr> 
     <td>{{entry.name}}</td> 
     <td>{{entry.telpon}}</td> 
     <td>{{entry.foobar}}</td> 
    </tr> 
    </tbody> 
</table> 

У меня нет никакой ошибки, мои данные в таблице ничего не показывают. Что я должен пробовать знать, какая функция работает или нет?

jush есть предупреждение XMLHttpRequest on the main thread is deprecated because of its detrimental effects to the end user's experience. Я не знаю, что это значит.

+0

Вы определили ' function GetAllRecords() {', поэтому это не функция в объекте' $ scope'. Вместо '$ scope.GetAllRecords()' делать просто 'GetAllRecords()' или определять функцию объекта области, например '$ scope.GetAllRecords = function() {// ..}' – devqon

+0

, пожалуйста, дайте мне пример. спасибо – Stfvns

+0

Okey спасибо. Это функция создания работы. Но не показывать таблицу. И не имеет ошибки. Что я волнуюсь? @devqon – Stfvns

ответ

1

Функция GetAllRecords() не установлена ​​на $scope. Вам нужно установить $scope.GetAllRecords = GetAllRecords перед вызовом $scope.GetAllRecords():

function entryCtrl($scope) { 
    $scope.pageClass = 'page-entry'; 
    $scope.GetAllRecords = function() { 
     var promiseGet = CRUD_AngularJs_RESTService.getAllEntry(); 
     promiseGet.then(function (pl) { $scope.EntryData = pl.data }, 
      function (errorPl) { 
       $log.error('Some Error in Getting Records.', errorPl); 
      }); 
    } 
    $scope.GetAllRecords(); 
} 

В качестве альтернативы, вы можете просто позвонить GetAllRecords() непосредственно, так как вы, кажется, не нуждается в $scope:

function entryCtrl($scope) { 
    $scope.pageClass = 'page-entry'; 
    (function() { 
     var promiseGet = CRUD_AngularJs_RESTService.getAllEntry(); 
     promiseGet.then(function (pl) { $scope.EntryData = pl.data }, 
      function (errorPl) { 
       $log.error('Some Error in Getting Records.', errorPl); 
      }); 
    })(); 
} 
+0

Вы мне как это?' entryCtrl. $ injection = ['$ scope', GetAllRecords]; function entryCtrl ($ scope) {..}; function GetAllRecords() {var promGet = CRUD_AngularJs_RESTService.getAllEntry(); ..} ' – Stfvns

+0

@Stfvns: см. мое редактирование. –