mirror of
https://github.com/NativeScript/NativeScript.git
synced 2025-08-18 05:18:39 +08:00
Fixed: Setting the ListPicker.selectedIndex on pageLoaded selects the correct item but it is not rendered.
This commit is contained in:
3
apps/pickers-demo/app.ts
Normal file
3
apps/pickers-demo/app.ts
Normal file
@ -0,0 +1,3 @@
|
||||
import application = require("application");
|
||||
application.mainModule = "app/main-page";
|
||||
application.start();
|
34
apps/pickers-demo/main-page.ts
Normal file
34
apps/pickers-demo/main-page.ts
Normal file
@ -0,0 +1,34 @@
|
||||
import observableModule = require("data/observable");
|
||||
import pagesModule = require("ui/page");
|
||||
import model = require("./model");
|
||||
import enums = require("ui/enums");
|
||||
import labelModule = require("ui/label");
|
||||
import listPickerModule = require("ui/list-picker");
|
||||
import datePickerModule = require("ui/date-picker");
|
||||
import timePickerModule = require("ui/time-picker");
|
||||
|
||||
var viewModel: model.WebViewModel;
|
||||
var page: pagesModule.Page;
|
||||
var label: labelModule.Label;
|
||||
var listPicker: listPickerModule.ListPicker;
|
||||
var datePicker: datePickerModule.DatePicker;
|
||||
var timePicker: timePickerModule.TimePicker;
|
||||
|
||||
export function onPageLoaded(args: observableModule.EventData) {
|
||||
viewModel = new model.WebViewModel();
|
||||
page = <pagesModule.Page>args.object;
|
||||
page.bindingContext = viewModel;
|
||||
|
||||
viewModel.items = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"];
|
||||
viewModel.selectedIndex = 5;
|
||||
|
||||
label = page.getViewById<labelModule.Label>("label");
|
||||
listPicker = page.getViewById<listPickerModule.ListPicker>("listPicker");
|
||||
datePicker = page.getViewById<datePickerModule.DatePicker>("datePicker");
|
||||
timePicker = page.getViewById<timePickerModule.TimePicker>("timePicker");
|
||||
}
|
||||
|
||||
export function onTap(args: observableModule.EventData) {
|
||||
console.log("onTap");
|
||||
viewModel.items = ["Male", "Female"];
|
||||
}
|
9
apps/pickers-demo/main-page.xml
Normal file
9
apps/pickers-demo/main-page.xml
Normal file
@ -0,0 +1,9 @@
|
||||
<Page loaded="onPageLoaded">
|
||||
<StackLayout id="stack">
|
||||
<Button id="button" text="GO!" height="50" width="100" tap="onTap"/>
|
||||
<Label id="label" text="{{ selectedIndex }}" height="50" width="100" />
|
||||
<ListPicker id="listPicker" selectedIndex="{{ selectedIndex }}" items="{{ items }}"/>
|
||||
<DatePicker id="datePicker"/>
|
||||
<TimePicker id="timePicker"/>
|
||||
</StackLayout>
|
||||
</Page>
|
27
apps/pickers-demo/model.ts
Normal file
27
apps/pickers-demo/model.ts
Normal file
@ -0,0 +1,27 @@
|
||||
import observable = require("data/observable");
|
||||
|
||||
export class WebViewModel extends observable.Observable {
|
||||
constructor() {
|
||||
super();
|
||||
}
|
||||
|
||||
private _selectedIndex: number;
|
||||
get selectedIndex(): number {
|
||||
return this._selectedIndex;
|
||||
}
|
||||
set selectedIndex(value: number) {
|
||||
console.log("selectedIndex:" + value);
|
||||
this._selectedIndex = value;
|
||||
this.notify({ object: this, eventName: observable.knownEvents.propertyChange, propertyName: "selectedIndex", value: value });
|
||||
}
|
||||
|
||||
private _items: Array<string>
|
||||
get items(): Array<string> {
|
||||
return this._items;
|
||||
}
|
||||
set items(value: Array<string>) {
|
||||
console.log("items:" + value);
|
||||
this._items = value;
|
||||
this.notify({ object: this, eventName: observable.knownEvents.propertyChange, propertyName: "items", value: value });
|
||||
}
|
||||
}
|
2
apps/pickers-demo/package.json
Normal file
2
apps/pickers-demo/package.json
Normal file
@ -0,0 +1,2 @@
|
||||
{ "name" : "pickers-demo",
|
||||
"main" : "app.js" }
|
Reference in New Issue
Block a user