我正在通过尝试制作一个可以访问现有 jquery 插件的组件来了解 angular.dart 组件。我正在尝试以下内容:
library mylib;
import 'dart:html'; // querySelector
import 'package:js/js.dart'; // javascript
import 'package:angular/angular.dart';
@NgComponent(
selector: 'aSelector',
templateUrl: 'partial.html',
cssUrl: 'style.css',
publishAs: 'ctrl',
map: const {
'param': '=>param'
}
)
class myComponent extends NgShadowRootAware {
String param;
Compiler compiler;
Injector injector;
Scope scope;
MyComponent(this.compiler, this.injector, this.scope);
void onShadowRoot(ShadowRoot shadowRoot) {
this.scope.$watch((int) => shadowRoot.querySelector('.myContainer').text.length, (currentValue, previousValue, Scope scope) {
if (currentValue != previousValue) {
var container = context.jQuery('.myContainer', shadowRoot);
var options = map({
'p1': 1,
'p2': 2
});
container.jqplugin(options);
}
});
}
}
不幸的是,“容器”似乎是空的……如何让 jQuery 选择组件内部的元素,即在 shadow dom 中?
BTW,目前推荐的导入js的方式是什么?我发现了这个:
import 'package:js/js.dart' as js;
但是现在包 js 的某些功能被移到 dart:js 中,我不确定应该做什么。