在现有的 Meteor-Blaze 项目中使用现有的 AngularJS 应用程序

Using an existing AngularJS app in existing Meteor-Blaze project

我有一个正在运行的 AngularJS 项目,我最近开始使用一个用 Meteor-Blaze 编写的开源项目。我知道 AngularJS 可以用于 meteor 而不是 blaze,如 here.

所述

我想做的是让我相当简单的 Angular 项目加载到 Meteor-Blaze 项目中,而不用强制导航到新站点。问题是我读过的所有内容似乎都表明,如果我想 Angular 在 Meteor 中工作,我需要先从我的项目中删除 Blaze。

我相信我已经找到了执行相反操作的说明,即在 Angular 项目中托管 Blaze 模板 here.

这有可能吗?我意识到最好的解决方案可能是在 Blaze 中重写我的 Angular 项目,但我现在宁愿避免这样做,即使它不是一个完美的解决方案。

关于我正在尝试做的事情的更多说明:Meteor-Blaze 项目正在使用 kadira:flow-router 将页面的一部分设置为特定的 Blaze 模板,使用:{{pathFor 'myLink'}}。这是在用 FlowRouter.route() 设置它们之后使用的。理想的情况是能够使用相同的 "FlowRouter" 显示我的 angular 应用程序,但我认为它并不那么简单,我愿意接受其他建议。

我已经使用 Meteor/Public folder 解决了这个问题。通过将我的应用程序放在那里,meteor 现在会忽略这些文件,并将它们作为静态资产从您的根目录加载。

从那里开始很简单,我创建了一个包含 iframe 的模板,它只加载了我的 angular 项目:

<template name="dummypage">
  <iframe style="height:100%; width:100%" src="/my_angular_app/index.html"></iframe>
</template>

然后我使用 FlowRouter 路由到它:

FlowRouter.route('/dummypage');

注意:除了使用 FlowRouter 之外,我确信还有多种加载虚拟页面模板的方法,但这对我的用例有效。