From e2780ec3431c75cef71b9cebaeb66b31c8ddea16 Mon Sep 17 00:00:00 2001 From: Vladimir Enchev Date: Mon, 11 May 2015 11:12:15 +0300 Subject: [PATCH 1/2] missing setter for observable array added --- data/observable-array/observable-array.ts | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/data/observable-array/observable-array.ts b/data/observable-array/observable-array.ts index babdbd849..b026da7c1 100644 --- a/data/observable-array/observable-array.ts +++ b/data/observable-array/observable-array.ts @@ -1,5 +1,6 @@ import observable = require("data/observable"); import observableArrayDef = require("data/observable-array"); +import types = require("utils/types"); export class ChangeType implements observableArrayDef.ChangeType { static Add = "add"; @@ -66,6 +67,12 @@ export class ObservableArray extends observable.Observable implements observa get length(): number { return this._array.length; } + set length(value: number) { + if (types.isNumber(value) && this._array && this._array.length !== value) { + this._array = this._array.slice(0, value); + this._notifyLengthChange(); + } + } /** * Returns a string representation of an array. From 81746533e5325b943f770763cb858de7dcf7a09a Mon Sep 17 00:00:00 2001 From: Vladimir Enchev Date: Mon, 11 May 2015 11:33:09 +0300 Subject: [PATCH 2/2] test added --- apps/tests/observable-array-tests.ts | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/apps/tests/observable-array-tests.ts b/apps/tests/observable-array-tests.ts index d4ba7fd29..6a4b852fd 100644 --- a/apps/tests/observable-array-tests.ts +++ b/apps/tests/observable-array-tests.ts @@ -45,6 +45,21 @@ export var test_ObservableArray_shouldCreateArrayFromSpecifiedLength = function TKUnit.assert(array.length === 100, "ObservableArray should create array from specified length!"); }; +export var test_ObservableArray_shouldBeAbleToSetLength = function () { + // + // ### Set ObservableArray length to new value. + // ``` JavaScript + var array = new observableArrayModule.ObservableArray(100); + // + TKUnit.assert(array.length === 100, "ObservableArray should create array from specified length!"); + // + array.length = 50; + // ``` + // + + TKUnit.assert(array.length === 50, "ObservableArray should respect new length!"); +}; + export var test_ObservableArray_getItemShouldReturnCorrectItem = function () { // // ### Get item at specified index using getItem(index) method.