将外部文件与AngularJs集成

时间:2015-04-07 20:08:28

标签: javascript angularjs

我刚刚开始使用AngularJs。 我需要使用SunCalc模块来计算我的应用程序的太阳位置。 我不知道如何将文件集成到应用程序以及如何在尊重AngularJs结构的同时访问其不同的功能。在哪里放文件?如何调用函数?等...

这是一个链接,您可以快速查看SunCalc模块的结构,希望对我有所帮助。 https://github.com/mourner/suncalc/blob/master/suncalc.js

非常感谢你的帮助!

1 个答案:

答案 0 :(得分:2)

由于这个库用一堆方法公开了全局SunCalc对象,你可以做的就是将这个lib包装成自定义服务。

app.factory('SunCalc', function() {
    return window.SunCalc;
});

然后你可以在控制器中使用它:

app.controller('MainCtrl', function($scope, SunCalc) {
    $scope.position = SunCalc.getTimes(new Date(), 52.3667, 4.9000);
});

在这种情况下,您可以将事件添加到此服务,而不会弄乱原始库。

请注意,从技术上讲,您可以使用全局可访问的SunCalc,而无需再为此创建一个服务。但是,使用服务可以提供一些优势:您可以轻松地重命名它,它允许使用外观原始库API,使用全局变量容易出错等。

还要记住在Angular脚本标记之前包含脚本标记。

演示: http://plnkr.co/edit/rbATLGfGE2kx32tmEEoX?p=preview