【问题标题】:Angular js $asyncValidator "Undefined is not a function!" when passing promisesAngular js $asyncValidator “未定义不是函数!”传递承诺时
【发布时间】:2014-11-20 10:04:35
【问题描述】:

只是试图重构我的代码并打算具有以下结构:

服务:

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

我做错了什么?

【问题讨论】:

    标签: javascript angularjs angularjs-directive angular-promise angularjs-validation


    【解决方案1】:

    三个注入,但指令中只有两个(不同的)参数:

    ['UsernameRESTService','CarrierValidationHelper','$q',function(UsernameValidationHelper,$q){}]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-05
      • 2018-11-05
      • 2014-02-02
      • 1970-01-01
      • 1970-01-01
      • 2016-03-21
      相关资源
      最近更新 更多