我想使用 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,
};
谢谢
根据参数返回新实例与使用shared instance
视图模型相矛盾。这与使用视图模型作为构造函数(接受参数(方法完全相同。
如果要创建单个实例,请在每次应用绑定之前根据参数修改其内部结构,可以使用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,
};
});
但使用这种方法很微妙。如果页面中有多个组件,则最后一个要绑定的组件优先,其参数将覆盖所有其他组件。