【问题标题】:Running Normal Dart HTML and Angular Dart 2 in the same app在同一个应用程序中运行 Normal Dart HTML 和 Angular Dart 2
【发布时间】:2016-01-01 20:16:58
【问题描述】:

是否可以将普通的 Dart HTML 应用程序与 Angular Dart 2 混合使用,并让 Angular Dart 2 在应用程序的某些部分而不是其他部分运行?

我已经尝试过了,但似乎 Angular 正在将自己注入到每个页面中。

index1.html:

<script type="application/dart" src="main.dart"></script>
<script data-pub-inline src="packages/browser/dart.js"></script>
</body>

index2.html:

<my-app>Loading...</my-app>
<script async src="main2.dart" type="application/dart"></script>
<script async src="packages/browser/dart.js"></script>
</body>

main.dart:

// many imports

void main() {
  // manual code to hook urls, html etc
}

main2.dart:

import 'package:angular2/angular2.dart';
import 'package:angular2/bootstrap.dart';

@Component(selector: 'my-app', template: '<h1>Testing Angular Dart 2</h1>')
class AppComponent {}
main() {
    bootstrap(AppComponent);
}

pubspec.yaml:

...
environment:
  sdk: '>=1.0.0 <2.0.0'
dependencies:
  ...
  less_dart: any
  browser: any
  http: any
  event_bus: any
  dart_to_js_script_rewriter: any
  angular2: 2.0.0-beta.0
transformers:
- dart_to_js_script_rewriter
- $dart2js:
    commandLineOptions: [--enable-experimental-mirrors]
- less_dart:
    entry_points: [web/styles/main.less, web/styles/test.less]
    build_mode: dart
- angular2:
    entry_points: web/main2.dart

angular2 转换器明显指向main2.dart,并且只有index2.html 正在导入main2.dart,但是当我加载正在导入index1.htmlindex1.html 时,角度应用程序会运行。

在包含 Angular Dart 2 时,是否可以做我想做的事情,或者是全有或全无的情况?

【问题讨论】:

  • 你如何理解“角度应用程序运行”?您的index.html 是否也包含&lt;app&gt;&lt;/app&gt; 标签?这是在 Dartium 或 Crome/Firefix 中(使用 pub serve)还是在 pub build 之后?
  • 在执行pub serve 时会发生这种情况,我还没有尝试过构建,但也需要它与pub serve 一起工作。当我转到index1.html 时,我看到&lt;h1&gt;Testing Angular Dart 2&lt;/h1&gt;,当我转到index2.html 时,我看到相同的加载页面,然后是&lt;h1&gt;Testing Angular Dart 2&lt;/h1&gt;Index1.html 不包含任何特殊标签,例如 &lt;my-app&gt;,只有普通的 html,如 div、'p' 等。当我再次从 pubspec 中移除变压器时,index1.html 再次将其旧 html 加载为它应该。
  • 我明白了,可能是具有多个入口点的转换器错误。我想将这些信息添加到您创建的问题中也会有所帮助。
  • 我重新启动了我的电脑,问题就消失了,index1.html 现在提供正确的内容,index2.html 提供角度页面。很奇怪,我没有做任何代码改动!
  • 可能是.pub 中使用新 Dart 版本重新生成的文件不一致。

标签: dart angular-dart


【解决方案1】:

“似乎 Angular 将自己注入到每个页面中”是什么意思?如果您有不同的入口点(index1.htmlindex2.html、...),每个入口点都是一个单独的应用程序,您可以启用或不启用 Angular。如果这不起作用,那是某些变压器中的错误。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-11-19
  • 1970-01-01
  • 2017-12-01
  • 2019-03-09
相关资源
最近更新 更多