【问题标题】:Angular 2 Dart: How to select and change element in an imported sub-component?Angular 2 Dart:如何在导入的子组件中选择和更改元素?
【发布时间】:2017-04-04 15:28:15
【问题描述】:

以下 angular/dart 库 (https://pub.dartlang.org/packages/pikaday_datepicker_angular2) 似乎写得不太好,因为无法设置日期的外部更改(没有设置器 - 我只能在开始,但如果它改变了外层则不是)。

我的问题是:如何访问导入的库组件的内部以更改其中的值或某些 HTML?

my_component.html:

<div>
    <pikaday #pickuptimeselector [day]="selectedDay"(dayChange)="changeDate($event)" format="DD.MM.YYYY"
                       [minDate]="mindate" [maxDate]="maxdate"
                       [(i18n)]="datepickerI18n"
                       firstDay="1">
    </pikaday>
</div>

my_component.dart:

import 'package:pikaday_datepicker_angular2/pikaday_datepicker_angular2.dart';


@Component(
    selector: 'my_component',
    styleUrls: const ['my_component.css'],
    templateUrl: 'my_component.html',
    directives: const [materialDirectives,PikadayComponent],
    providers: const [materialProviders]
)
class MyComponent {

  Map<String,dynamic> datepickerI18n = new Map<String,dynamic>();

  DateTime selectedDay;

  void dayChange() { 
  ...
  }
}

从 Chrome 控制台生成的 pikaday 组件输出:

<pikaday _ngcontent-oid-5="" firstday="1" format="DD.MM.YYYY"><input type="text" id="pikadayInput1" class="" placeholder="" aria-label="Use the arrow keys to pick a date"></pikaday>

如您所见,组件内部有一个输入。随着Datetime selectedDay 的变化,我想为此输入字段设置一个新的日期值。怎么样?

【问题讨论】:

    标签: angular dart angular-dart angular2-dart


    【解决方案1】:

    这在任何法律上都是不可能的。如果您的应用正在使用镜像,您可以尝试一下,但千万不要在生产应用中这样做。

    最好的方法是修复库并发送拉取请求。

    【讨论】:

    • 谢谢这个答案并没有让我高兴,但无论如何都很好知道。至少我发现你可以用:host /deep/ 破解元素的 CSS,这样如果它的功能性但可能性有限,你就可以假装破解一些。
    猜你喜欢
    • 2017-06-15
    • 1970-01-01
    • 2017-01-08
    • 1970-01-01
    • 2018-01-17
    • 2017-01-24
    • 2020-04-14
    • 1970-01-01
    • 2016-03-29
    相关资源
    最近更新 更多