2017-04-04 11 views
0

날짜의 외부 변경을 설정할 수 없기 때문에 다음 각도/다트 라이브러리 (https://pub.dartlang.org/packages/pikaday_datepicker_angular2)가 잘 작성되지 않은 것으로 보입니다 (설정자가 없음 - 초기 날짜/externallay를 변경하는 경우는 제외).Angular 2 Dart : 가져온 하위 구성 요소의 요소를 선택하고 변경하는 방법은 무엇입니까?

내 질문 : 내부에서 값이나 일부 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() { 
    ... 
    } 
} 
크롬 콘솔에서 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 변경 사항으로이 입력 필드에 새 날짜 값을 설정하고 싶습니다. 방법?

답변

1

법적으로 불가능합니다. 응용 프로그램에서 미러를 사용하고 있다면 시도해 볼 수는 있지만 프로덕션 응용 프로그램에서는 절대 수행하지 않아야합니다.

가장 좋은 방법은 라이브러리를 수정하고 끌어 오기 요청을 보내는 것입니다.

+0

답변 덕분에 나를 행복하게 만들지는 못했지만 어쨌든 잘 알게되었습니다. 적어도 당신이 CSS의': host/deep/'요소를 해킹 할 수 있다는 것을 알았습니다. 그래서 그 기능이 있지만 가능성은 제한되어 있다면 가짜 해킹을 할 수 있습니다. – Blackbam