1
我開始在Knockout Component
的工作中轉換系統的一部分,但任何時候,我都需要在我的組件中定義的訪問功能。如何訪問Knockout組件功能
例子我將創建一個msgComponent
:
在HTML:
<body>
<msgComponent params="message: 'blablabla'"></msgComponent>
</body>
在JS:
ko.components.register('msgComponent', {
viewModel: function (params)
{
this.message = ko.observable(params.message);
this.showMessage = function()
{
alert(this.messenge());
}.bind(this);
},
template: '<div data-bind="text: message"></div>'
});
function myMasterViewModel()
{
var master = this;
// How to can I access my component this way?
master.msgComponent = msgComponent;
master.showMessage();
}
就像在我的例子,如何可以訪問我的組件的功能與其他查看模型?
拳編輯: @Dandy 如果我需要實例的詳細msgComponent
頁,我可以定義這樣?
var sharedComponent = function(params){
var params = params || {};
this.message = ko.observable(params.message);
this.showMessage = function()
{
alert(this.message());
}.bind(this);
}
ko.components.register('msgcomponent', {
viewModel: function(params)
{
this.instance = params.viewModel;
},
template: '<div data-bind="with: instance"><div data-bind="text: message"></div></div>'
});
function myMasterViewModel()
{
var master = this;
master.msg = new sharedComponent({message: 'huahua'});
master.show = function()
{
master.msg.showMessage();
};
}
還是有更正確的方法來處理這種情況?
如果我在頁面中需要實例更多的'msgComponent',我該怎麼辦? – Lai32290
我編輯我的問題,添加代碼,我認爲是工作的一種方式 – Lai32290