无法使用淘汰赛组件呈现部分html

时间:2018-08-01 13:51:26

标签: c# knockout.js

我已经定义了如下组件

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>

但是如果您直接使用组件标记,则无效。

1 个答案:

答案 0 :(得分:0)

我相信组件名称必须与“ MyComponent.cshtml”中的ID匹配,因此请尝试将static componentName: string = 'mycomponent';更改为editshipment-typeOfGoods或将ID更改为mycomponent-template