2

我很难访问指令中的服务。我通过 $http 和 $q 定义我的服务,并将其注入到我的指令中。但我无法获得访问服务的指令。

服务.js

'use strict';
var app = angular.module('App.services', []);

app.factory('Classification', function($http,$q) {
    return {
        query: function getAll() {
            var deferred = $q.defer();
            $http.get('index.php/classifications').then(function(classi) { 
                deferred.resolve(classi.data);
            }, function getWebsitesError(reason) {
                deferred.reject(reason);
            });
            return deferred.promise;
        }
    };
});

应用程序.js

'use strict';

/* App Module */
var app = angular.module('App', ['App.controllers', 'App.services', 'App.directives',  'ui']);

app.config(['$routeProvider', function($routeProvider) {
  $routeProvider.
      when('/', {templateUrl: 'partials/welcome.html'}).
      when('/websites/:websiteId', {templateUrl: 'partials/website/details.html',     controller: 'WebsiteDetailsCtrl'}).
      otherwise({redirectTo: '/'});
}]);

和我的directive.js:

'use strict';
var app = angular.module('App.directives', ['App.services']);

app.directive("regionselect",['Classification', '$compile', function($compile, Classification){
    Classification.query();<-- Throw an exception : has no method query()
    return{
        restrict : "E",
        templateUrl : "/js/directives/locationSelect3.html",
        transclude: true,
        compile: function (tElement, tAttr, transclude){
            var loaded = false;                
        }
    };
}]);

知道我做错了什么吗?

4

1 回答 1

3

会不会是订单?

app.directive("regionselect",['Classification', '$compile', function($compile, Classification){

你声明

['Classification', '$compile',

但函数说

function($compile, Classification){

这是倒退。

于 2013-04-20T03:28:07.417 回答