【问题标题】:How to select polymer dart custom elements in a angular dart view如何在角度飞镖视图中选择聚合物飞镖自定义元素
【发布时间】:2014-07-16 18:47:31
【问题描述】:

所以,我正在尝试使用 querySelector 在我的视图中选择聚合物自定义元素(使用 paper_elements)。我能够选择常规的 html 元素就好了。特别是,我正在尝试选择特定的纸张输入元素。我希望能够查询它的输入元素,它隐藏在它的第二个 shadowroot 中。

我尝试了以下方法:

querySelector('#my-paper-input::shadow #input')
querySelector('paper-input::shadow input')

还有许多其他变体。但是,无论我做什么,查询总是返回 null。这让我发疯,因为我可以在 css 中设置它的样式。做什么?

【问题讨论】:

    标签: dart dart-polymer angular-dart


    【解决方案1】:

    据我所知,您必须使用几个步骤

    querySelector('#my-paper-input').shadowRoot.querySelector('input');
    

    但您也应该能够使用外部元素的属性来访问该值,例如

    querySelector('#my-paper-input').attributes['value'] or
    querySelector('#my-paper-input').attributes['inputValue']
    

    你也可以使用http://pub.dartlang.org/packages/angular_node_bind
    但我最近无法将 Angular 与纸张元素一起使用(请参阅 https://github.com/angular/angular.dart/issues/1227)

    【讨论】:

    • 没有骰子,我什至无法选择纸张输入。 >.> 我正在尝试在控制器中为视图运行 querySelector
    • 当您添加Element 类型的构造函数参数时,您将获得传入的视图元素,然后您可以在视图上调用querySelector。如果视图是一个普通的 Angular 组件,它本身就有一个 shadowDOM。视图组件需要实现 ShadowRootAware 在onShadowRoot 方法内执行查询。这是组件完全初始化的时候。您还必须确保 Polymer 已完全初始化,否则 shadowRoot 将无法访问。
    • 谢谢,我可以看一个例子吗?
    • 你发布更多代码然后我修复我应该改变的东西怎么样? ;-) 我忘记发布此链接stackoverflow.com/questions/24550516 (ShadowRootAware)。这是我尝试使用纸元素和 Polymer.dart github.com/zoechi/so_question_24723315
    • 我用我的代码的相关部分创建了一个repo。有不少问题。您现在可以忽略 commute Map 类,它正在被重新设计为更具棱角。我主要关心的是通勤控制器类。这就是我希望能够查询聚合物元素的地方。此外,当编译为 js 时,ng-view 不起作用。非常感谢!
    猜你喜欢
    • 2014-10-05
    • 1970-01-01
    • 2014-06-26
    • 2015-06-17
    • 1970-01-01
    • 2013-08-24
    • 1970-01-01
    • 2015-03-23
    • 2014-04-24
    相关资源
    最近更新 更多