Позвоните в таможенную службу внутри директивы angularJS - PullRequest
0 голосов
/ 13 мая 2019
angular.module("quickquiz-builder").service("SettingsService", function ($http, $q) {
    var self = {
        'generalSettings': [],
        'getGeneralSettings' : function(){
            var d = $q.defer();
            $http({
                url: "get.php",
                    method: "GET"
                }).then(function successCallback(resonse) {
                    var config = resonse.data.config;
                    config = JSON.parse(config).data;
                    self.generalSettings = config.settings;
                    d.resolve();
                }, function errorCallback(response) {
                    console.dir(response);
            });
            d.promise();
        }
    }
}), angular.module("quickquiz-builder").directive("quizbuilderSettings", ["SettingsService", "QuestionsService", "$filter", function (a, b, c) {
    return {
        restrict: "E",
        scope: {},
        templateUrl: "templates/settings.html",
        controllerAs: "ctrl",
        controller: ["$scope", function (c) {
            a.getGeneralSettings().then(function success(data){
                console.dir(data);
        });
        }]
    }
}])
<div ng-app="quickquiz-builder">
    <div ng-view></div>
</div>

Код не выполняется.Я получаю сообщение об ошибке «getGeneraSettings», функция не найдена, когда я вызываю ее из службы Injected в директиве.Я новичок в угловой, любая помощь будет большой благодарностью.enter image description here

1 Ответ

1 голос
/ 13 мая 2019

Служба должна вернуть свой экземпляр.

angular.module("quickquiz-builder").service("SettingsService", function ($http, $q) {
   const self = this;
   self.foobar = function(){};
   return self;
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...