我想将参数发送给"实例"使用requirejs我的淘汰组件(单例)。 敲除帮助仅显示非实例参数传递的示例。
我有以下使用该实例并且工作正常的代码。
//module declaration
function unapAppointments()
{
rest of code here.
}
return {
viewModel: {
instance: new unapAppointments()
},
template: unapp,
};
我想做的是下面从组件中传入PARAMS。但这显然不起作用。
//module declaration
function unapAppointments(PARAMS)
{
use PARAMS
}
return {
viewModel: {
instance: new unapAppointments(PARAMS)
},
template: unapp,
};
由于
答案 0 :(得分:2)
根据params返回一个新实例与使用shared instance
视图模型相矛盾。这就像使用viewmodel作为构造函数(接受params)方法。
如果要创建单个实例,请在每次应用绑定之前根据params修改其内部,您可以使用createViewModel
工厂:
define(['knockout', 'text!./unapp.html'], function(ko, unapp) {
function unapAppointments() {
// rest of code here.
}
var mySingleton = new unapAppointments();
function unapAppointmentsFactory(params, componentInfo) {
// modify mySingleton using params
return mySingleton;
}
return {
viewModel: {
createViewModel: unapAppointmentsFactory
},
template: unapp,
};
});
但使用这种方法很精致。如果页面中有多个组件,则最后一个组件将获胜,其参数将覆盖所有其他组件。