Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
纸张元素仅在Dart中创建HtmlElements_Dart_Dart Polymer_Angular Dart_Web Component - Fatal编程技术网

纸张元素仅在Dart中创建HtmlElements

纸张元素仅在Dart中创建HtmlElements,dart,dart-polymer,angular-dart,web-component,Dart,Dart Polymer,Angular Dart,Web Component,我有一个简单的组件,其中包含定义如下的员工列表: @Component(selector: 'employee-list', templateUrl: 'employee_list.html', cssUrl: 'employee_list.css') class EmployeeListComponent extends ShadowRootAware { ... } 我想在我的代码中使用PaperFab元素作为操作按钮,并想动态更改它(例如更改图标) HTML中有一个指向元素定义的

我有一个简单的组件,其中包含定义如下的员工列表:

@Component(selector: 'employee-list', templateUrl:
    'employee_list.html', cssUrl: 'employee_list.css')
class EmployeeListComponent extends ShadowRootAware {
...
}
我想在我的代码中使用
PaperFab
元素作为操作按钮,并想动态更改它(例如更改图标)

HTML中有一个指向元素定义的链接:

<link rel="import" href="packages/paper_elements/paper_fab.html">

当通过

var fab = _shadowRoot.querySelection("#fabButton");
print(fab is PaperFab) // false

是否可以从自定义图元访问图纸图元?或者您应该改用
innerHTML
,这可能会起作用,但会破坏组件的概念。

我假设您的聚合物初始化丢失了。 有关更多详细信息,请参阅

您需要确保Polymer已正确初始化,然后才能通过在
区域内运行代码来创建元素。运行((){…}
initPolymer()。运行((){…}
或其中一个Polymer生命周期回调。 如果在
run
中初始化Angular,也可以在Angular code中的任何位置创建聚合元素

这是强制创建实例或聚合元素的默认方式

var fab=new Element.tag('paper-fab')作为PaperFab;
但是核心元素和纸质元素都有一个工厂构造函数,它也允许使用new来实例化它们

newpaperfab();
如果您构建自己的聚合物元素,您需要自己添加工厂构造函数,以便能够使用
new
创建新实例。
有关更多详细信息,请参见。

除了甘特的回答之外:

main.dart
中,将其与AngularDart组合的结构如下:

void main(){
initPolymer().然后((区域)=>zone.run(){
聚合物。onReady。然后((){
根目录
…级别=级别
…onRecord.监听((LogRecord r){
打印(r.message);
});
applicationFactory().addModule(新的MyAppModule()).run();
});
}));
}
要解决烟雾库的任何问题,请将聚合物变压器添加到
pubspec.yaml

变压器:
-角度:
html\u文件:
...
-聚合物:
入口点:web/index.html

谢谢。这确实是解决方案的一部分。需要与AngularDart一起添加一些内容。
var fab = new Element.tag('paper-fab') as PaperFab;
// Casts error: type 'HtmlElement' is not a subtype of type 
//    'PaperFab' in type cast.
var fab = _shadowRoot.querySelection("#fabButton");
print(fab is PaperFab) // false