From 7b4b881fbcdc1f1cfd34881defead166caab71e8 Mon Sep 17 00:00:00 2001 From: Igor Oleinikov Date: Sat, 28 Jun 2014 18:55:04 +0400 Subject: [PATCH] Added ko.component KnockoutComponents: register, isRegistered, unregister; KnockoutComponentDefinition: template, createViewModel; KnockoutComponentLoader: loadTemplate, loadViewModel; KnockoutComponentConfig: template, createViewModel. --- knockout/knockout.d.ts | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/knockout/knockout.d.ts b/knockout/knockout.d.ts index e2a5e2738..e3d5e42cb 100644 --- a/knockout/knockout.d.ts +++ b/knockout/knockout.d.ts @@ -167,7 +167,10 @@ interface KnockoutBindingHandlers { uniqueName: KnockoutBindingHandler; // Rendering templates - template: KnockoutBindingHandler; + template: KnockoutBindingHandler; + + // Components (new for v3.2) + component: KnockoutBindingHandler; } interface KnockoutMemoization { @@ -541,23 +544,31 @@ interface KnockoutBindingProvider { } interface KnockoutComponents { + register(componentName: string, definition: KnockoutComponentDefinition): void; + isRegistered(componentName: string): boolean; + unregister(componentName: string): void; get(componentName: string, callback: (definition: KnockoutComponentDefinition) => void): void; - clearCachedDefinition(componentName: string): void; - loaders: any[]; + clearCachedDefinition(componentName: string): void + defaultLoader: KnockoutComponentLoader; + loaders: KnockoutComponentLoader[]; } interface KnockoutComponentDefinition { - // todo + template: Node[]; + createViewModel?(params: any, options: { element: Node; }): any; } interface KnockoutComponentLoader { getConfig? (componentName: string, callback: (result: KnockoutComponentConfig) => void): void; loadComponent? (componentName: string, config: KnockoutComponentConfig, callback: (result: KnockoutComponentDefinition) => void): void; + loadTemplate? (componentName: string, templateConfig: any, callback: (result: Node[]) => void): void; + loadViewModel? (componentName: string, viewModelConfig: any, callback: (result: any) => void): void; suppressLoaderExceptions?: boolean; } interface KnockoutComponentConfig { - // todo + template: any; + createViewModel?: any; } interface KnockoutComputedContext {