调用 ngBootstrap 我使用
void main() {
initPolymer()
.run(() {
ngBootstrap(module: new AppModule());
});
}
由于聚合物 0.10.0-pre.8 这似乎不再可能:
Dartium 目前只允许每个应用程序使用一个 Dart 脚本标签,并且将来它将在单独的隔离中运行它们。为此,需要更新以下所有脚本标签以使用 mime 类型“application/dart;component=1”而不是“application/dart”:
⪪script type="application/dart" src="main.dart"></script>
每个文档只允许一个 Dart 脚本标签
但是我的 main 不是一个组件——它是一个普通的 main !!!
最佳答案
比想象的要容易。
索引.html:
<head>
<script type='application/dart;component=1' src='main.dart'></script>
</head>
主要 Dart :
import 'package:polymer/polymer.dart';
import 'package:angular/angular.dart';
import 'package:angular/angular_dynamic.dart';
// HACK until we fix code gen size. This doesn't really fix it,
// just makes it better.
@MirrorsUsed(override: '*')
import 'dart:mirrors';
void myRouteInitializer(Router router, RouteViewFactory views) {
views.configure({
'hello': ngRoute(
path: '/hello',
enter: views('views/hello.html')),
'goodbye': ngRoute(
path: '/hellopolymer/:callerID',
enter: views('views/hello-polymer.html'))
});
}
@NgController( selector: '[webapp-sample]', publishAs: 'ctrl')
class MyControler {
final Repository _repository;
MyControler(final RouteProvider routeProvider,this._repository) {
final int value = routeProvider.parameters["callerID"];
if(value != null && value != null) {
_repository.value = value;
}
}
int get value => _repository.value;
}
class Repository {
int value = 0;
}
class AppModule extends Module {
AppModule() {
value(RouteInitializerFn, myRouteInitializer);
value(Repository,new Repository());
type(MyControler);
factory(NgRoutingUsePushState, (_) => new NgRoutingUsePushState.value(false));
}
}
@initMethod
void init() {
dynamicApplication().addModule(new AppModule()).run();
}
关于dart - 使用最新的聚合物版本向 ngBootstrap 调用 main 显示错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22988895/