Skip to content

Commit

Permalink
Fixes #43 & #46
Browse files Browse the repository at this point in the history
  • Loading branch information
triniwiz committed Feb 20, 2018
1 parent 8ee99b6 commit 1973be4
Show file tree
Hide file tree
Showing 4 changed files with 33 additions and 5 deletions.
4 changes: 2 additions & 2 deletions src/angular/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -79,8 +79,7 @@ export interface SetupItemViewArgs {
</DetachedContainer>`,
changeDetection: ChangeDetectionStrategy.OnPush
})
export class PagerComponent
implements DoCheck, OnDestroy, AfterViewInit {
export class PagerComponent implements DoCheck, OnDestroy, AfterViewInit {
private viewInitialized: any;
private _selectedIndex: any;
private _items: any;
Expand Down Expand Up @@ -181,6 +180,7 @@ export class PagerComponent
};

this._templateMap.set(key, keyedTemplate);
this.setItemTemplates();
}

ngOnDestroy() {
Expand Down
2 changes: 1 addition & 1 deletion src/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "nativescript-pager",
"version": "7.0.12",
"version": "7.0.13",
"description": "",
"main": "pager",
"typings": "index.d.ts",
Expand Down
29 changes: 27 additions & 2 deletions src/pager.common.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,17 @@ import {
KeyedTemplate,
Template
} from 'tns-core-modules/ui/core/view';
import {} from 'tns-core-modules/';
import { isIOS } from 'tns-core-modules/platform';
import * as types from 'tns-core-modules/utils/types';
import { parse, parseMultipleTemplates } from 'tns-core-modules/ui/builder';
import { Label } from 'tns-core-modules/ui/label/label';
import { Label } from 'tns-core-modules/ui/label';
import { write, categories, messageType } from 'tns-core-modules/trace';
import { ObservableArray } from 'tns-core-modules/data/observable-array';
import {
addWeakEventListener,
removeWeakEventListener
} from 'tns-core-modules/ui/core/weak-event-listener';
export const ITEMLOADING = 'itemLoading';
export const LOADMOREITEMS = 'loadMoreItems';
export namespace knownTemplates {
Expand Down Expand Up @@ -48,7 +54,7 @@ export abstract class PagerBase extends View {

// TODO: get rid of such hacks.
public static knownFunctions = ['itemTemplateSelector']; // See component-builder.ts isKnownFunction
abstract refresh(hardReset: boolean): void;
abstract refresh(hardReset): void;
private _itemTemplateSelector: (
item: any,
index: number,
Expand Down Expand Up @@ -153,6 +159,25 @@ export abstract class PagerBase extends View {
}

function onItemsChanged(pager: PagerBase, oldValue, newValue) {
if (oldValue instanceof ObservableArray) {
removeWeakEventListener(
oldValue,
ObservableArray.changeEvent,
pager.refresh,
pager
);
}

if (newValue instanceof ObservableArray) {
addWeakEventListener(
newValue,
ObservableArray.changeEvent,
pager.refresh,
pager
);
}

pager.refresh(false);
if (newValue) {
pager.updateNativeItems(oldValue, newValue);
}
Expand Down
3 changes: 3 additions & 0 deletions src/pager.ios.ts
Original file line number Diff line number Diff line change
Expand Up @@ -100,6 +100,9 @@ export class Pager extends PagerBase {
updateNativeItems(oldItems: View[], newItems: View[]) {}

refresh(hardReset = false) {
if (!types.isBoolean(hardReset)) {
hardReset = false;
}
this._viewMap.forEach((view, index, array) => {
if (!(view.bindingContext instanceof Observable)) {
view.bindingContext = null;
Expand Down

0 comments on commit 1973be4

Please sign in to comment.