mirror of
https://github.com/ionic-team/ionic-framework.git
synced 2025-08-20 12:29:55 +08:00
92 lines
1.7 KiB
TypeScript
92 lines
1.7 KiB
TypeScript
import {App, Page, Refresher} from 'ionic-angular';
|
|
import {Injectable} from '@angular/core';
|
|
|
|
/**
|
|
* Mock Data Access Object
|
|
**/
|
|
@Injectable()
|
|
export class MockProvider {
|
|
|
|
getData() {
|
|
// return mock data synchronously
|
|
let data = [];
|
|
for (var i = 0; i < 3; i++) {
|
|
data.push( this._getRandomData() );
|
|
}
|
|
return data;
|
|
}
|
|
|
|
getAsyncData() {
|
|
// async receive mock data
|
|
return new Promise(resolve => {
|
|
|
|
setTimeout(() => {
|
|
resolve(this.getData());
|
|
}, 1000);
|
|
|
|
});
|
|
}
|
|
|
|
private _getRandomData() {
|
|
let i = Math.floor( Math.random() * this._data.length );
|
|
return this._data[i];
|
|
}
|
|
|
|
private _data = [
|
|
'Fast Times at Ridgemont High',
|
|
'Peggy Sue Got Married',
|
|
'Raising Arizona',
|
|
'Moonstruck',
|
|
'Fire Birds',
|
|
'Honeymoon in Vegas',
|
|
'Amos & Andrew',
|
|
'It Could Happen to You',
|
|
'Trapped in Paradise',
|
|
'Leaving Las Vegas',
|
|
'The Rock',
|
|
'Con Air',
|
|
'Face/Off',
|
|
'City of Angels',
|
|
'Gone in Sixty Seconds',
|
|
'The Family Man',
|
|
'Windtalkers',
|
|
'Matchstick Men',
|
|
'National Treasure',
|
|
'Ghost Rider',
|
|
'Grindhouse',
|
|
'Next',
|
|
'Kick-Ass',
|
|
'Drive Angry',
|
|
];
|
|
|
|
}
|
|
|
|
|
|
@App({
|
|
templateUrl: 'main.html',
|
|
providers: [MockProvider]
|
|
})
|
|
class ApiDemoApp {
|
|
items: string[];
|
|
|
|
constructor(private mockProvider: MockProvider) {
|
|
this.items = mockProvider.getData();
|
|
}
|
|
|
|
doRefresh(refresher: Refresher) {
|
|
console.log('DOREFRESH', refresher);
|
|
|
|
this.mockProvider.getAsyncData().then((newData) => {
|
|
for (var i = 0; i < newData.length; i++) {
|
|
this.items.unshift( newData[i] );
|
|
}
|
|
|
|
refresher.complete();
|
|
});
|
|
}
|
|
|
|
doPulling(refresher: Refresher) {
|
|
console.log('DOPULLING', refresher.progress);
|
|
}
|
|
}
|