我找不到模态元素内的元素。我有一个带有以下模板的简单组件
<modal>
<select id="pickItem">
<option value="1">one</option>
<option value="2">two</option>
</select>
</modal>
在我的ngOnInit中输入代码
SelectElement select = querySelector("#pickItem");
print(select);
我得到空值。如果我将模式标签更改为div,则可以使用。有没有首选的方式来处理查询元素?
这里是显示ViewChild不起作用的示例。 ViewChild在第一个组件上工作。 IE:
import 'dart:html';
import 'package:angular/angular.dart';
import 'package:angular_forms/angular_forms.dart';
@Component(
selector: 'my-app',
template:'''
<select #mySelect>
<option value="1">one</option>
<option value="2">two</option>
</select>
''',
directives: const [formDirectives]
)
class AppComponent implements AfterViewInit {
@ViewChild("mySelect")
SelectElement element;
@override
ngAfterViewInit() {
print(element);
}
}
这将在运行时将“选择”打印到控制台。
如果在子组件中,则不起作用。
app_component.dart
import 'package:angular/angular.dart';
import 'package:angular_forms/angular_forms.dart';
import 'child_component.dart';
@Component(
selector: 'my-app',
template:'''
<child-component></child-component>
''',
directives: const [formDirectives, ChildComponent]
)
class AppComponent implements AfterViewInit {
@override
ngAfterViewInit() {
}
}
child_component.dart
import 'dart:html';
import 'package:angular/angular.dart';
import 'package:angular_forms/angular_forms.dart';
@Component(
selector: 'child-component',
template:'''
<select #mySelect>
<option value="1">one</option>
<option value="2">two</option>
</select>
''',
directives: const [formDirectives]
)
class ChildComponent implements AfterViewInit {
@ViewChild("myselect")
SelectElement element;
@override
ngAfterViewInit() {
print(element);
}
}
这将在运行时向控制台输出“ null”。