0

Mon module viewmodel a plusieurs classes, donc je veux enregistrer une classe spécifique comme viewmodel de composant.Enregistrer le composant Knockout.js viewmodel du module dans le script de type

Et il dit: 'filtre table' Composant: Valeur inconnue ViewModel: [object Object]

C'est ce que j'ai dans mon module viewmodel

module FilterVM { 

export class FilterViewModel { 
    //some code 
} 

class FilterTableViewModel { 
} 

class AttributeTableViewModel { 
} 

class LayerAttributeViewModel { 
} 

} 
export = FilterVM; 

Et ce où je suis essayer de s'inscrire

import FilterVM = require('Scripts/App/Components/AttributeTable/ViewModels/FilterViewModel'); 


ko.components.register('filter-table', { 
     viewModel: { require: FilterVM.FilterViewModel }, 
     template: { require: 'text!Scripts/App/Components/AttributeTable/Views/FilterTableView.html' } 
    }); 

Quel est le problème avec cela?

Répondre

4

SOLVED

Le problème était ici viewModel: { require: FilterVM.FilterViewModel }

devrait être viewModel: FilterVM.FilterViewModel

0

require('Scripts/App/Components/AttributeTable/ViewModels/FilterViewModel');

Vous devez probablement changer cela en un chemin relatif. Même si TypeScript le trouve au moment de la compilation ... la bibliothèque d'exécution peut ne pas le faire. Utilisez quelque chose comme require('../AttributeTable/ViewModels/FilterViewModel'); etc.

+0

qui ne fonctionne pas pour moi. Si je mets viewModel: {require: 'Scripts/App/Composants/AttributeTable/ViewModels/FilterViewModel'} fonctionne si le fichier n'a qu'une seule classe, je veux choisir une classe spécifique de beaucoup – Doseke