在directive.js中使用angularjs模块而不是controller.js

时间:2016-06-23 03:01:17

标签: javascript angularjs ionic-framework

我正在使用ng-messages对表单进行自定义验证,因此我需要解析一些字符串。因此,我导入了ng-string来利用它的功能。不幸的是,我只能在controller.js中使用它,但不能在directive.js中使用它。 我试过的事情:

  1. 只要我能在directive.js

    中导入字符串
            .directive('ngCustomdir', function(){
        return {
            restrict: 'A',
            require:'ngModel',
            link: function($scope, $element, $attrs, ngModel, string){
                ngModel.$validators.customdir= function(modelValue){
                    console.log("checking");
                    return false;
                };
                ngModel.$validators.validemail=function(modelValue, string){
                    console.log("string:" + string('  ToTrim ').trim().s);
    
                }
            }
        }
    });
    
  2. 2.返回一个控制器进行解析(我放了一个打印你好的虚拟控制器)

        .directive('ngCustomdir', function(){
            return {
                restrict: 'A',
                require:'ngModel',
                link: function($scope, $element, $attrs, ngModel, string){
                    ngModel.$validators.customdir= function(modelValue){
                        console.log("checking");
                        return false;
                    };
                    ngModel.$validators.validemail=function(modelValue, string){
                        //console.log("string:" + string('  ToTrim ').trim().s);
                        return{ 
                            controller: 'parseEmailCtrl'
                        };
                    }
                }
            }
        })
        .controller('parseEmailCtrl', function($scope, $state, $ionicHistory, $stateParams) {
          console.log('hello');
        }) 
    

    我该怎么办?提前谢谢!

2 个答案:

答案 0 :(得分:0)

注入指令本身,然后在整个指令

中的任何地方使用它
 .directive('ngCustomdir', function(string){

link具有预定的参数且不可注射

答案 1 :(得分:0)

您必须使用app.directive('ngCustomdir', function(){app页面上定义index.html作为ng-app="app"。 然后在app.js文件中定义var app = angular.module('app', ['ionic',etc.]);,然后您可以使用app.directive('ngCustomdir', function(){。 此致