我有一个处理所有错误/错误消息的组件。我调试了它,并成功地将错误字符串传递到变量中,但无法在模板中显示
这是我的代码
export class ErrorHandlerComponent {
get ComponentName() {
return "error-handler";
}
constructor() {
this.errorMessage = ko.observable();
if (!ko.components.isRegistered(this.ComponentName)) {
ko.components.register(this.ComponentName, {
viewModel: ErrorHandlerComponent,
template:
`
<div class="modal fade" id="modalError" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true" data-backdrop='static' data-keyboard='false'>
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="exampleModalLabel"><i class="fa fa-exclamation-circle"></i> Error occurred</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
</button>
</div>
<div class="modal-body" data-bind="text: errorMessage">
</div>
<div class="modal-footer modal-btn">
<button type="button" class="btn btn-warning btn-lg" data-bind="click: ClickRefreshPage">Refresh</button>
</div>
</div>
</div>
</div>
`
});
}
}
Show(msg) {
this.errorMessage(msg);
$('#modalError').modal('show');
}
Close() {
$('#modalError').modal('hide');
$(".modal-backdrop").remove();
$("body").css({ 'padding-right': '0px' });
}
ClickRefreshPage() {
alert('refreshing...');
}
}
当我调用Show
函数时,参数被传递,this.errorMessage()
有一个值,但是在text: errorMessage
中我不能显示它。
1条答案
按热度按时间7bsow1i61#
john是对的,
this
指的是组件注册时的ErrorHandlerComponent,显然总是空的。我缺少的是一个可观察的参数,它是通过组件的
param
属性从父组件传递过来的。如果你把它放在你的构造函数中,ko会链接所有的东西,并且会显示一个验证消息传递给组件。https://jsfiddle.net/ezw9q02x/1/