2016-09-26 25 views
0

我无法获取用户修改的TimePicker值。我所得到的是我在控制中设定的原始价值。NativeScript - TimePicker无法获取用户修改的值

这里是我的组件模板:

<TabView [(ngModel)]="tabSelectedIndex" selectedColor="#FF0000" style="height:90%"> 
    <StackLayout *tabItem="{title: 'Time'}"> 
     <TimePicker #timePicker [(ngModel)]='model.time'></TimePicker> 
    </StackLayout> 
    <StackLayout *tabItem="{title: 'Date'}"> 
     <DatePicker #datePicker [(ngModel)]='model.date'></DatePicker> 
    </StackLayout> 
</TabView> 
<button text="Done" (tap)="onDoneTap()"></button> 

而我的组件代码:

export class DateTimePickerComponent 
{ 
    public mDate: Date; 
    public tabSelectedIndex: number; 
    public model: any; 

    constructor() 
    { 
     this.mDate = new Date(); 
     this.model = { 
      date: new Date(2014, 5, 13, 2, 24), 
      time: new Date(2014, 5, 13, 2, 24) 
     }; 
    } 

    private onDoneTap() 
    { 
     this.mDate.setMinutes(this.model.time.getMinutes()); 
     this.mDate.setHours(this.model.time.getHours()); 

     this.mDate.setDate(this.model.date.getDate()); 
     this.mDate.setMonth(this.model.date.getMonth()); 
     this.mDate.setFullYear(this.model.date.getFullYear()); 

     console.log(this.mDate); 
    } 
} 

要构建这个我用Docs

  • 的DatePicker - 日期属性
  • TimePicker - 时间属性

在这个例子中,DatePicker完美的工作,它初始化在2014-05-13,当我改变它,我在控制台中获得修改后的值。那么我是否在TimePicker上做错了什么?

注:我也尝试使用ID阅读小时和分钟属性,但没有成功。总是相同的初始值(2:24)

@ViewChild("timePicker") timePicker: ElementRef; 
let datePickerView = <TimePicker>this.timePicker.nativeElement; 
console.log(datePickerView.hour); // 2 
console.log(datePickerView.minute) // 24 

回答

0

对于任何人谁可能落在这里:

一个错误是在Github上打开了这个问题。 [see here]

0

这个问题可以,当你错过了你的main.ts文件中添加NativeScriptFormsModuleimports引起的。你可以查看下面给出的示例:

import { platformNativeScriptDynamic, NativeScriptModule } from "nativescript-angular/platform"; 
import { NativeScriptFormsModule } from "nativescript-angular/forms"; 
import { NgModule } from "@angular/core"; 
import { AppComponent } from "./app.component"; 

@NgModule({ 
    declarations: [AppComponent], 
    bootstrap: [AppComponent], 
    imports: [NativeScriptModule, NativeScriptFormsModule], 
}) 
class AppComponentModule {} 

platformNativeScriptDynamic()bootstrapModule(AppComponentModule);

我希望这会有所帮助。

更新: 您可以返回TimePicker值作为您的onDoneTap方法的参数。你可以查看附件的例子。

app.component.html

<StackLayout exampleTitle toggleNavButton> 
<!-- >> creating-timepicker-html --> 
<timePicker class="example-container" #timePicker verticalAlignment="center"></timePicker> 
<!-- << creating-timepicker-html --> 
<Button text="view" (tap)="ontap(timePicker.time)"></Button> 

</StackLayout> 

app.component.ts

export class AppComponent { 
    public ontap(args:Date){ 
     console.log(args); 
    } 
} 
+0

好主意,但不是,我在我的导入中有“NativeScriptFormsModule” – Odubuc

+0

您是否尝试在'main.ts'文件中添加'NativeScriptFormsModule'来验证这是否能解决您的问题。 –

+0

是的,它是在我的main.ts – Odubuc