0

私のコードをリファクタリングしようとしていて、次の構造にするつもりです:

サービス:

} }]).factory('UsernameRESTService', ['Restangular',function(Restangular){
    var restAngular = 
        Restangular.withConfig(function(Configurer) {
            Configurer.setBaseUrl('http://localhost:2000/');
        });

        return {
            getCarrier: function(carrierCode) {
                var usernamePromise=restAngular.one(carrierCode).get();
                return usernamePromise;
            }
}}]).factory('UsernameValidationHelper',['UsernameRESTService','$q',function(UsernameRESTService,$q){
    return{
        usernameExists: function(username){
            var deferred = $q.defer();
            deffered.resolve(true);
            return deferred.promise;
        }
}}])

指令:

angular.module('myApp.commonDirectives', ['myApp.services']).directive('username', ['UsernameValidationHelper','$q',function(UsernameValidationHelper,$q){
    
    return {
        restrict: 'A',
        require: "ngModel",
        
        link: function(scope, element, attrs, ctrl) {
            ctrl.$asyncValidators.username = function(value){
                var deferred = $q.defer();
                    bob= UsernameValidationHelper.usernameExists("bob");
                    defer.resolve();
                    return deferred.promise;
                }
            }
        }
}])

現時点では、約束の知識が不足しているため、試しているところです。

電話するbob= UsernameValidationHelper.usernameExists("bob");と、Type Error: Undefined is not a function

私は何を間違っていますか?

4

1 に答える 1

0

3 つのインジェクション、ただしディレクティブには 2 つの (異なる) パラメータのみ:

['UsernameRESTService','CarrierValidationHelper','$q',function(UsernameValidationHelper,$q){}]
于 2014-11-20T10:20:27.070 に答える