From 68fae9d85da639867d236f10602a03b136e11644 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc-Andr=C3=A9=20Boivin?= Date: Thu, 19 Jun 2014 10:05:21 -0400 Subject: [PATCH 1/2] Update knockout.d.ts Updated the allBindingsAccessor parameter in the KnockoutBindingHandler interface to support the get method. --- knockout/knockout.d.ts | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/knockout/knockout.d.ts b/knockout/knockout.d.ts index 9c4e02bd8..71252985d 100644 --- a/knockout/knockout.d.ts +++ b/knockout/knockout.d.ts @@ -123,9 +123,14 @@ interface KnockoutBindingContext { createChildContext(dataItemOrAccessor: any, dataItemAlias?: any, extendCallback?: Function): any; } +interface KnockoutAllBindingsAccessor { + (): any; + get(bindingName: string): any; +} + interface KnockoutBindingHandler { - init?(element: any, valueAccessor: () => any, allBindingsAccessor: () => any, viewModel: any, bindingContext: KnockoutBindingContext): void; - update?(element: any, valueAccessor: () => any, allBindingsAccessor: () => any, viewModel: any, bindingContext: KnockoutBindingContext): void; + init?(element: any, valueAccessor: () => any, allBindingsAccessor: KnockoutAllBindingsAccessor, viewModel: any, bindingContext: KnockoutBindingContext): void; + update?(element: any, valueAccessor: () => any, allBindingsAccessor: KnockoutAllBindingsAccessor, viewModel: any, bindingContext: KnockoutBindingContext): void; options?: any; } From 6fbd241926c55a315b5628204e5eb7342a4f0ffc Mon Sep 17 00:00:00 2001 From: maboivin Date: Mon, 23 Jun 2014 13:16:58 -0400 Subject: [PATCH 2/2] Added a test for the allBindingsAccessor parameter in the KnockoutBindingHandler interface to support the get method. --- knockout/tests/knockout-tests.ts | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/knockout/tests/knockout-tests.ts b/knockout/tests/knockout-tests.ts index 1ebef13ef..da5d1e65a 100644 --- a/knockout/tests/knockout-tests.ts +++ b/knockout/tests/knockout-tests.ts @@ -581,4 +581,21 @@ function test_misc() { } } +} + +interface KnockoutBindingHandlers { + allBindingsAccessorTest: KnockoutBindingHandler; +} + +function test_allBindingsAccessor() { + ko.bindingHandlers.allBindingsAccessorTest = { + init: (element: any, valueAccessor: () => any, allBindingsAccessor: KnockoutAllBindingsAccessor, viewModel: any, bindingContext: KnockoutBindingContext) => { + var allBindings = allBindingsAccessor(); + var myBinding = allBindingsAccessor.get("myBindingName"); + }, + update: (element: any, valueAccessor: () => any, allBindingsAccessor: KnockoutAllBindingsAccessor, viewModel: any, bindingContext: KnockoutBindingContext) => { + var allBindings = allBindingsAccessor(); + var myBinding = allBindingsAccessor.get("myBindingName"); + } + }; } \ No newline at end of file