javascript - Angular 6 - 是否可以在同一页面上使用两个 Angular 元素组件?

标签 javascript html angular elements angular6

我正在尝试托管可以放入非 Angular 网页的独立 Angular 元素。当我只有一个时它工作得很好..但是当我在同一页面上加载两个或更多时我得到这个错误:

Uncaught Error: Zone already loaded.

我正在使用构建脚本将我的 dist 文件连接成一个 js 文件..然后将其放入我的项目

const fs = require('fs-extra')
const concat = require('concat')


const files = [
    './dist/elementsApp/runtime.js',
    './dist/elementsApp/polyfills.js',
    './dist/elementsApp/scripts.js',
    './dist/elementsApp/main.js',
]


fs.ensureDir('elements')
.then(() => {
  console.log('success!')
  concat(files, 'elements/include-me-somewhere-else.js')
})
.catch(err => {
  console.error(err)
})

我只能在一个页面上有这些 js 文件之一。我知道 angular 7 会让整个过程更容易,但我想知道我现在如何才能完成这个。

我还尝试将我导出的 js 文件包装在一个自执行函数中,以尝试限制范围。不幸的是,没有解决任何问题。

有什么想法吗?

人们似乎对什么是 Angular 元素感到困惑。如需说明,您可以观看此视频 https://www.youtube.com/watch?v=4u9_kdkvTsc .最后几分钟特别显示了一个 Angular 元素被导出并包含在一个非 Angular 页面上。我正在尝试在同一页面上包含多个元素。

最佳答案

我认为你不应该在一个站点上使用 2 angular。

解决方案可以是:

  • 使用 Angular 构建整个网站。代码的其他部分可以添加到应用中。
  • 使用子模块并将两个应用程序与父路由器合并。
  • 为每个 Angular 组件使用 iframe。那么ngzone就不会碰撞了。

关于javascript - Angular 6 - 是否可以在同一页面上使用两个 Angular 元素组件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50398605/

相关文章:

angular - 以 Angular 2 重置输入值

javascript - 仅在单击特定链接后页面加载后执行 JQuery

javascript - Electron < WebView > : Uncaught SyntaxError: Unexpected token

javascript - 使用 jquery 解析数据-*

javascript - 如何保存HTML页面的状态(jQuery修改后)

angular - 如何在angular 2 ag-grid中的两行ag-grid之间添加空间

javascript - jQuery scrollTo 插件不考虑 "over"参数

html - 将 CSS 添加到 shadow-root 元素将不起作用

javascript函数对象原型(prototype)

javascript - awesome-typescript-loader 无法加载 ts 文件