我已经定义了如下组件
module AgeModule {
export class My_Component {
static componentName: string = 'mycomponent';
static templateName: string = My_Component.componentName + '-template';
myObs: KnockoutObservable<any>;
constructor(params) {
this.myObs = params && params.myObs;
}
static registerComponent = () => {
ko.components.register(My_Component.componentName, { viewModel: My_Component, template: { element: My_Component.templateName } });
}
}
}
然后在cshtml中我注册了
之类的组件 AgeModule.My_Component.registerComponent();
并加载
之类的局部视图 @Html.Partial("~/Areas/Views/Home/Partials/MyComponent.cshtml", Model)
然后在局部视图“ MyComponent.cshtml”中
<script type="text/html" id="mycomponent-template">
<div> KSJSDSSSSSSSSSSSSSSSSSSSSSSSSSSSS</div>
</script>
然后我将组件称为
<mycomponent params="age: ageobs"></mycomponent>
我在控制台中没有得到任何错误,但是我的局部视图根本没有渲染。我也不知道如何调试。该如何解决?
更新
这在我绑定组件时有效
<div data-bind="component: {name: 'mycomponent', params: {age:ageobs}}">
</div>
但是如果您直接使用组件标记,则无效。
答案 0 :(得分:0)
我相信组件名称必须与“ MyComponent.cshtml”中的ID匹配,因此请尝试将static componentName: string = 'mycomponent';
更改为editshipment-typeOfGoods
或将ID更改为mycomponent-template