Added support for Array Change subscriptions. Added tests to the test_observableArrays() in knockout-tests.ts.

This commit is contained in:
EWOUT-QMINO\Ewout
2014-10-07 12:20:56 +02:00
parent 9dbc0c5a46
commit 9967239f2a
2 changed files with 14 additions and 1 deletions

View File

@@ -53,7 +53,7 @@ interface KnockoutSubscription {
}
interface KnockoutSubscribable<T> extends KnockoutSubscribableFunctions<T> {
subscribe(callback: (newValue: T) => void, target?: any, event?: string): KnockoutSubscription;
subscribe(callback: (object: Object) => void, target?: any, event?: string): KnockoutSubscription;
subscribe<TEvent>(callback: (newValue: TEvent) => void, target: any, event: string): KnockoutSubscription;
extend(requestedExtenders: { [key: string]: any; }): KnockoutSubscribable<T>;
getSubscriptionsCount(): number;
@@ -84,6 +84,8 @@ interface KnockoutObservableArrayStatic {
}
interface KnockoutObservableArray<T> extends KnockoutObservable<T[]>, KnockoutObservableArrayFunctions<T> {
subscribe(callback: (newValue: T[]) => void, target?: any, event?: string): KnockoutSubscription;
subscribe(callback: (changes: KnockoutArrayChange<T>[]) => void, target?: any, event?: string): KnockoutSubscription;
extend(requestedExtenders: { [key: string]: any; }): KnockoutObservableArray<T>;
}
@@ -100,6 +102,8 @@ interface KnockoutObservable<T> extends KnockoutSubscribable<T>, KnockoutObserva
peek(): T;
valueHasMutated?:{(): void;};
valueWillMutate?:{(): void;};
subscribe(callback: (newValue: T) => void, target?: any, event?: string): KnockoutSubscription;
extend(requestedExtenders: { [key: string]: any; }): KnockoutObservable<T>;
}

View File

@@ -108,6 +108,15 @@ function testGetter() {
function test_observableArrays() {
var myObservableArray = ko.observableArray<any>();
myObservableArray.subscribe(function(changes){
for(var i = 0; i < changes.length; i++){
console.log(changes[i].index);
console.log(changes[i].status);
console.log(changes[i].value);
}
}, null, "arrayChange");
myObservableArray.push('Some value');
var anotherObservableArray = ko.observableArray([
{ name: "Bungle", type: "Bear" },