首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将特定的Javascript库导入到角4(如果库没有导出变量)

将特定的Javascript库导入到角4(如果库没有导出变量)
EN

Stack Overflow用户
提问于 2017-09-27 19:39:48
回答 1查看 433关注 0票数 2

我试图在角4视图中显示两个JSON对象的差异,我正在使用这个库(角目标差),它最初是为AngularJS构建的。

该库的演示:链接

我试图通过以下方式导入这个JS库:

我试图导入的JS文件:angular-object-diff.js,没有导出变量

在我的typings.d.ts中(我添加了以下内容):

代码语言:javascript
复制
declare var ObjectDiff: any;

在角-cli.json中,我添加了

代码语言:javascript
复制
"scripts": [
    "../node_modules/angular-object-diff/dist/angular-object-diff.js"
  ],

在我的组件文件中:

代码语言:javascript
复制
const json1 = {
  name: 'John'
};
const json2 = {
  name: 'Johnny'
};
const diff = ObjectDiff.diffOwnProperties(json1, json2);
this.jsonViewData = ObjectDiff.toJsonDiffView(diff);

我认为:

代码语言:javascript
复制
<pre ng-bind-html="jsonViewData"></pre>
<pre> {{jsonViewData}}</pre>

什么都不起作用,我发现控制台“”中没有定义"ObjectDiff“

如果我做错了什么,谁能告诉我吗?还欢迎关于显示JSON差异的建议:)

**谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-09-27 20:14:06

图书馆什么也不出口。它使用IIFE不污染全局范围的局部变量。从外部访问局部变量是不可能的,这使得Module模式非常有效(而且很烦人)。

库使用AngularJS angular全局,并期望它将存在。这造成了一个问题,因为在这种情况下,角4应用程序应该模拟angular全局。此外,代码本身依赖于特定于AngularJS的单元($sce服务)。

图书馆应该进行分叉和改造,以满足人们的期望。应该删除对angular的提及。考虑到脚本将在模块范围内执行,应该删除IIFE并添加适当的导出。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46455968

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档