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