如何在指令外调用方法?

时间:2014-01-08 02:50:14

标签: javascript angularjs directive

我是角色的新手使用指令。有一个问题我需要帮助。 我有一个文件common.js。这个文件内容方法:

function showAlert(value) {
   alert(value);
}

并在指令中:

app.directive('ccDecimalinput', function($timeout, $parse){
      var FOCUS_CLASS = "error_tip error";
      var templateOut = '';
    //  console.log('ccDecimalinput ... ');
      return {
        restrict: 'E',
        require: 'ngModel',
        scope : {
            ngModel: '='
        },
        template: '<div ng-form="signup_form"><input type="text" class="maxlength_10_text left_aligned" id="' + attrs.id + '" name="' + attrs.name + '" ng-model="ngModel" required ng-minlength="1" ng-maxlength="10" /></div>'; ,
        replace : true,
        link: function(scope, ele, attrs, c) {
              scope.$watch('ngModel', function() {
                  if (scope.signup_form.$dirty && scope.signup_form.$invalid) {
                      //TODO
                      //I want to use method showAlert in common.js file here.
                      //....
                  }
              });
            }
        }
    });

有人帮帮我吗?

1 个答案:

答案 0 :(得分:2)

如果您已加载common.js脚本,则可以像平常一样调用该函数。它似乎是全球性的..

if (scope.signup_form.$dirty && scope.signup_form.$invalid) {
  showAlert('some value');
}

您可以在html中正常加载脚本:<script src="path/to/common.js"></script>

另外,我希望这只是一个例子。将alert()包装起来并没有多大意义。你可以直接调用alert()而不需要外部函数。