gpt4 book ai didi

angularjs - 从指令的编译中访问服务

转载 作者:行者123 更新时间:2023-12-04 05:01:24 24 4
gpt4 key购买 nike

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

服务.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;
}
};
}]);

知道我做错了什么吗?

最佳答案

会不会是订单?

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

你声明
['Classification', '$compile',

但函数说
function($compile, Classification){

这是倒退。

关于angularjs - 从指令的编译中访问服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16116107/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com