Asp.net mvc 将ViewModel作为参数发送到Knockout
我正在使用TypeScript进行敲除试验,并尝试将包含另一个模型作为参数的视图模型发送到以下函数: 打字稿:Asp.net mvc 将ViewModel作为参数发送到Knockout,asp.net-mvc,knockout.js,typescript,Asp.net Mvc,Knockout.js,Typescript,我正在使用TypeScript进行敲除试验,并尝试将包含另一个模型作为参数的视图模型发送到以下函数: 打字稿: export interface IEmployee {...} export interface ICompany {...} export class ViewModel() { constructor(company : ICompany) {} public setAsOwner(parent : ViewModel, person : IEmployee)
export interface IEmployee {...}
export interface ICompany {...}
export class ViewModel() {
constructor(company : ICompany) {}
public setAsOwner(parent : ViewModel, person : IEmployee) {
parent.company.updateOwner(person.id);
}
}
// In a different file
ko.applyBindings(new ViewModel(new ICompany()));
HTML:
-
@*员工详细信息*@
设为新所有者
但是,我不断收到一个错误,说parent.company
未定义。将视图模型作为参数传递给自己的函数的正确方法是什么?绑定处理程序函数自动接收当前员工项目作为第一个参数,如果您从包装器函数调用$parent.setAsOwner
,则父视图模型可通过this
供方法使用
因此,将setAsOwner
方法更改为:
publicsetasowner(个人:i员工){
this.company.updateOwner(person.id);
}
并将HTML文件发送至:
-
@*员工详细信息*@
设为新所有者
绑定处理程序函数自动接收当前员工项目作为第一个参数,如果您从包装函数调用$parent.setAsOwner
,则父视图模型可通过this
供方法使用
因此,将setAsOwner
方法更改为:
publicsetasowner(个人:i员工){
this.company.updateOwner(person.id);
}
并将HTML文件发送至:
-
@*员工详细信息*@
设为新所有者
<ul data-bind="foreach: employees">
<li>
@*Employee details...*@
<button data-bind="click: $root.setAsOwner.bind($parent, $data)">
Set as new owner
</button>
</li>
</ul>