2016-09-21 14 views
1

내가 가지고있는 사용자가 wj-input-time의 값이 변경 될 때마다 함수 실행 다음 코드를Wijmo의의 valueChanged 이벤트와 문제 + 데이터 각도 2

@Component({ 
    selector: 'my-app', 
    template: '<wj-input-time [step]="1" (valueChanged)="test()"></wj-input-time>' 
}) 
export class AppComponent { 

    test() { 
    console.log('test'); 
    } 

} 

는 위의 잘 작동하지만 데이터를 추가 할 때 바인딩을 입력에 valueChanged 이벤트 때 응용 프로그램의 부하를 해고되고 사용자는 단순히 원하는 결과 아닙니다 입력 클릭 할 때 또한 :

@Component({ 
    selector: 'my-app', 
    template: '<wj-input-time [(value)]="testDate" [step]="1" (valueChanged)="test()"></wj-input-time>' 
}) 
export class AppComponent { 

    testDate: Date = new Date(); 

    test() { 
    console.log('test'); 
    } 

} 

내가 Wijmo의 설명서를 읽고 많은 시간을 보냈습니다을하지만 도움이되지 않았습니다 . 나는 무엇을 놓치고 잘못 했는가? 나는 마지막 2 각도와 Wijmo 5.20162.211 평가 여기

을 사용하고

이 문제 (콘솔 로그를 확인)을 보여줍니다 Plunker입니다 : enter image description here enter image description here

: 여기 http://plnkr.co/edit/RFo84NEUbypSWwPPu8Go?p=preview

을 또한 스크린 샷입니다

답변

1

구성한 날짜는 초 단위이므로 정확하게 표시되지만 위젯은 분 단위입니다. 이 때문에 위젯은 필요한 다른 값 (화살표 단추를 누를 때)을 계산하면 변수를 다시 씁니다. 당신은 단지 주어진 분에 정확 날짜를 구성하는 경우

, 두 번째 로그 메시지가 더 이상 표시되지 않습니다.

@Component({ 
    selector: 'my-app', 
    template: '<wj-input-time [(value)]="testDate" [step]="1" (valueChanged)="test()"></wj-input-time>' 
}) 
export class AppComponent { 

    testDate: Date; 

    constructor() { 
    var d = new Date(); 
    this.testDate = new Date(d.getFullYear(), d.getMonth(), d.getDate(), d.getHours(), d.getMinutes()); 
    } 

    test() { 
    console.log('test'); 
    } 

} 

조절 됨 plnkr code 참조.

+0

고마워요! 또한 Wijmo 개발자는 바인딩에서 값을 변경하기 때문에로드시 valueChanged 이벤트를 실행하는 것이 올바른 동작이라고 말해 줬습니다. 나는 모든 것이 지금 설명 된 것 같아요. – nunoarruda

+0

그럼 어떻게해야합니까? 'valueChanged'에서 현재 값을'value'를 바인딩하지 않고 가져 오려면 어떻게해야합니까? – codefalling