从不同的javascript / Jquery函数调用Angularjs函数

时间:2017-03-14 11:50:52

标签: javascript jquery angularjs html5 css3

我有两个js文件,app.js和datepicker.js。我这里的html文件没什么关系。在datepicker.js中有一个名为clickApply()的javascript函数。我想调用另一个来自clickApply()函数的app.js文件中的submitDetails()函数。怎么做?



angular.module('ctrl').controller('MyCtrl', ["$scope","$rootScope", function($scope, $rootScope){
                
$rootScope.submitDetails=function() 
}]);//inside app.js






clickApply: function(e) { //inside datepicker.js
            
             angular.element('#span').on("click",submitDetails());
          
            this.hide();
            this.element.trigger('apply.daterangepicker', this);

        }




1 个答案:

答案 0 :(得分:0)

没有人喜欢在角度范围之外执行角度函数。如果你想在AngularJS中实现jQuery或任何其他外部插件,请将其包装在指令中并使用它。

以下代码仅用于debugging目的。

clickApply功能签名更改为以下内容:

  • 要访问scope,您可以使用angular.element(element).scope()
  • 对于rootScope,您可以使用angular.element('body')。scope()。$ root`

clickApply: function(e) { //inside datepicker.js
  angular.element('#span').on("click", function(e) {
    // if you want to access rootScope
    var rootScope = angular.element('body').scope().$root;
    rootScope.submitDetails();
    
    // if you want to access current scope
    // var scope = angular.element(e.target).scope();
    // scope.submitDetails();
  });
  this.hide();
  this.element.trigger('apply.daterangepicker', this);
}