Код фабрики и контроллера AngularJS, ничего не производящий - PullRequest
0 голосов
/ 19 декабря 2018

Когда запускается приведенный ниже код, в моей консоли ничего не отображается, чтобы указать, что что-то пошло не так, но, как вы можете видеть в listService, оно оповещает о результатах, но предупреждение отображается как «неопределенное».

I 'В конечном итоге я пытаюсь заставить его выполнить повторение, чтобы вывести список всех организаций в представлении.Любая помощь приветствуется !!

Вот мой завод.

app.factory("listService", ["$rootScope", "$http", "$location", "$routeParams",
    function($rootScope, $http, $location, $routeParams) {
        var siteURL = "jdfyhgyjdfghyjdgfyhkjyhjk";
        var svc = {};
        var data = null;

        svc.getListItems = function(listName) {
            $http({
                url: siteURL + "/_api/web/lists/GetByTitle('" + listName + "')/items",
                method: "GET",
                async: false,
                headers: {
                    "Accept": "application/json;odata=verbose",
                    "X-RequestDigest": jQuery("#__REQUESTDIGEST").val()
                },
                success: function(response, status, headers, config) {
                    data = response.data.d.results;
                    alert(data);
                },
                error: function(response, status, headers, config) {
                    $rootScope.error = status;
                }
            });
        }
        return svc;
    }
]);

Вот мой контроллер.

app.controller("readOrganizationsCtrl", ["$scope", "$http", "$location", "$routeParams", "listService",
    function($scope, $http, $location, $routeParams, listService) {
        $scope.organizations = listService.getListItems('Organizations');
    }
]);

И, наконец, вот мой взгляд.

<div class="form-group">
    <input type="text" class="form-control" id="search" placeholder="Search organizations" data-ng-model="search" />
</div>
<table class="table table-stripped table-hover">
    <thead>
        <tr>
            <th>Title</th>
        </tr>
    </thead>
    <tbody>
        <tr data-ng-repeat="organization in organizations | filter:search" data-ng-click="editOrganization($index)">
            <td>{{organization.Title}}</td>
        </tr>
    </tbody>
</table>
<div class="form-group">
    <button data-ng-click="addOrganization()" class="btn btn-primary">Add Organization</button>
</div>
{{"Error:" + error}}

1 Ответ

0 голосов
/ 19 декабря 2018

после вызова $ http в контроллере вы можете легко получить все ваши организации с siteURL, вот рабочий код: JS:

 var app = angular.module('plunker', []);

    app.controller('MainCtrl', function($scope, $http) {
            $http({
                method: 'GET',
                url: 'organizations.json',
                headers: {
                 withCredentials: true,
                 headers: {'Content-Type': 'application/x-www-form-urlencoded'},
                 },
                })
                .then(function successCallback(data) {
                    $scope.organizations = data.data;
                    console.log($scope.organizations)

                }, function errorCallback(response) {
                    console.log(response);
                    console.log('error');
                });    
    });

HTML:

 <tbody>
        <tr data-ng-repeat="organization in organizations | filter:search" data-ng-click="editOrganization($index)">
            <td>{{organization.name}}</td>
        </tr>
    </tbody>

plunker: http://plnkr.co/edit/aP7fLU1tfWwmZdCAYzIf?p=preview

Или, если вы хотите сделать это на заводе, вы можете сделать это следующим образом:

app.controller('MainCtrl', function($scope, $http, factory) {

      factory.getOrganizations()
         .then(function(data){
            $scope.organizations = data.data;
                    console.log($scope.organizations)
         })
         .catch(function(){
         })
      });

app.factory('factory',function($http){
  return {
     getOrganizations: function(){
        return $http.get('organizations.json');
     }
  };
})

plunker: http://plnkr.co/edit/UJUrTIGHGtjjccGAnHlk?p=preview

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...