javascript - 将外部文件与 AngularJs 集成

标签 javascript angularjs

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

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

非常感谢您的帮助!

最佳答案

由于该库公开了带有大量方法的全局 SunCalc 对象,您可以做的只是将此库包装到自定义服务中。

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

然后你可以在 Controller 中像这样使用它:

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

在这种情况下,您可以将自己的方法添加到此服务中,而不会弄乱原始库。

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

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

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

关于javascript - 将外部文件与 AngularJs 集成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29500370/

相关文章:

javascript - 上传前调整图片大小

javascript - 为所有元素解构数组内的对象属性

javascript - 通过 jQuery 随机背景图片

javascript - Bower/grunt 在顶部加载 1 个脚本

java - Keycloak 强制刷新 token

node.js - yeoman angular generator 不会启动 grunt serve

javascript - 默认导出的 Typescript 接口(interface)

javascript - 当一个文件已缓存时,Yepnope 不会触发完成或回调

javascript - 如何强制 Firebug 按照声明顺序打印 JSON 属性?

javascript - 如何在客户端使用 angularjs 并在后端使用 flask 开发 Web 应用程序?