我有一个knockout component
呈现员工姓名的名称。在这个组件中,我可以通过callback
函数来更改显示的员工姓名的格式。
但是我遇到了无法更改组件代码的情况。但我必须添加编辑按钮以显示模式弹出窗口以更新用户信息,如下图所示:
我如何设法使用callback
组件提供的功能显示此编辑按钮。但是我遇到了绑定click event
这个按钮的问题。
问题是:即使我定义了回调函数ShowModal
,它也没有被调用。
这是我的代码:
组件注册:
ko.components.register('emp-box', {
viewModel: function(params) {
var self = this;
self.Name = ko.observable();
self.Callback = params.formatCallback;
if(self.Callback !== undefined)
{
self.Name(self.Callback(params.EmpName));
}
else
{
self.Name(params.EmpName.firstName + ', ' + params.EmpName.lastName);
}
},
template: '<div class="name-container"><span data-bind="html: Name"></span></div>'
});
视图模型
var vm = function() {
var self = this;
self.Emps = [{'Details': {firstName: 'First Name-A', lastName: 'Last Name-A'}},
{'Details': {firstName: 'First Name-B', lastName: 'Last Name-B'}}];
// CALLBACK
self.changeFormat = function(item)
{
return item.firstName + ' - ' + item.lastName + ' <span class="action" data-bind="click: ShowModal">Edit</span>';
}
self.ShowModal = function(item)
{
alert(1);
}
}
ko.applyBindings(new vm());
HTML:
<div data-bind='foreach: Emps'>
<div data-bind='component: {
name: "emp-box",
params: {EmpName: Details, formatCallback: $root.changeFormat}
}'></div>
</div>
工作小提琴: 小提琴