从angularjs调用jquery中编写的函数

时间:2013-12-10 11:32:12

标签: jquery angularjs

我想从我的角度代码中调用jquery函数。所以让我坐下来我有3个函数funcX(data)funcY()funcZ()包含在

$(document).ready(function(){
.....
})

现在funcX(data)获取了我从角度服务获得的参数datafuncYfuncZ执行了一些DOM操作。完成的DOM操作非常复杂,我不想将该代码移植到角度。那么我可以从角度调用这些函数吗?

1 个答案:

答案 0 :(得分:2)

如果您的函数是在$(document).ready()内写的,那么:

$(document).ready(function(  ) {
    function a () {
        console.log("fun a");
    }
})

然后它们只能在该块中可见,并且不能在其外部访问。假设您的函数实际上以任何方式使用jQuery,您可以将它们作为全局jQuery函数或jQuery方法添加到jQuery对象。

  • jQuery全局函数被添加到jQuery对象本身。
  • jQuery方法被添加到jQuery.fn属性中。

两种情况的例子:

$(document).ready(function(  ) {
    jQuery.a = function () {
        console.log("jquery global fun a");
        // do something with jQuery here
    }

    jQuery.fn.b = function () {
        console.log("jquery fun b");
        // do something with jQuery here
    }
})

现在你可以使用这两个函数:

$.a(); // global functions are called from the jQuery object itself
$.('.some-class').b();  // jQuery methods are called on selectors

或者,您可以在global object中创建一个新对象,以存储应用程序的所有属性和功能。如果您计划在其中存储非jQuery代码并且您的函数不打算作为jQuery插件发布,那么它尤其有用:

window.magicApp = {}

window.magicApp.fun_a = function(  ) {
    console.log('fun a');
}

// somewhere in your code
magicApp.fun_a(); // works!