我需要在我的视图模型上设置多个值,这些值可能会也可能没有传递给viewModel构造函数的参数的相应值。
我熟悉jQuery插件默认对象并与传入选项合并,我想知道Knockout中是否存在类似于observable的东西。
以下是一次性的工作,但如果有十几个或更多,我不想为每条信息做这个:
export function viewModel(params) {
const vm = {};
vm.messageOne = params.hasOwnProperty('messageOne') ? params.messageOne : 'My default message';
}
答案 0 :(得分:1)
您可以使用Object.assign
合并两者:
function ViewModel(params) {
// All default properties go here:
const vm = { messageOne: "My Default Message" };
// Overwrite properties that are in `params`
Object.assign(vm, params);
/* ... */
}
如果你有一组有序的消息,它们应该是一个数组,而不是带有键的对象。
如果您只想将对象转换为具有可观察属性的对象,则可以使用ko.mapping插件