[英]Register Knockout.js component viewmodel from module in typescript
My viewmodel module has several classes, so I want to register a spesific class as component's viewmodel. 我的viewmodel模块有几个类,所以我想注册一个特殊的类作为组件的viewmodel。
And it says: Component 'filter-table': Unknown viewModel value: [object Object] 它说: 组件“ filter-table”:未知viewModel值:[object Object]
This is what I have in my viewmodel module 这就是我的viewmodel模块中的内容
module FilterVM {
export class FilterViewModel {
//some code
}
class FilterTableViewModel {
}
class AttributeTableViewModel {
}
class LayerAttributeViewModel {
}
}
export = FilterVM;
And this where I am trying to register 这是我要注册的地方
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' }
});
What is wrong with that? 怎么了
SOLVED 解决了
The problem was here viewModel: { require: FilterVM.FilterViewModel }
问题出在这里viewModel: { require: FilterVM.FilterViewModel }
Should be viewModel: FilterVM.FilterViewModel
应该是viewModel: FilterVM.FilterViewModel
require('Scripts/App/Components/AttributeTable/ViewModels/FilterViewModel');
You probably need to change this into a relative path. 您可能需要将其更改为相对路径。 Even though TypeScript finds it at compile time ... the runtime library may not. 即使TypeScript在编译时找到它,运行时库也可能没有。 Use something like require('../AttributeTable/ViewModels/FilterViewModel');
使用诸如require('../AttributeTable/ViewModels/FilterViewModel');
etc. 等等
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.