我有一个简单的应用程序,它使用两个视图模型和 requirejs 来组合它们,一切都很好,现在我被告知我需要有多个版本的嵌套视图模型,所以我添加了一个数组,我的第一个项目很好,但我我不知道如何添加我的子项目。
在另一个页面上,询问用户是否要添加另一个用户,如果是,我需要使用数组person
中的新空对象导航回此页面。people
- 如果我使用 requirejs 提供的对象
people.push(person)
,我会取回现有版本而不是新版本 - 如果我只是向数组中添加一个新对象
people.push({})
,那么我的淘汰绑定将不起作用,因为它们正在寻找不存在的值。
如何让“新”person
进入people
?
这是我的视图模型和视图,
根据
define(['viewmodel/person'], function (person) {
var vm = {
people: [],
peopleIndex: 0,
currentPerson: currentPerson,
};
return vm;
//#region Internal Methods
function currentPerson() {
return vm.people[vm.peopleIndex]
}
})
普通小孩
define(['services/logger', ], function (logger) {
var person = {
title: "",
firstName: "",
lastName: "",
};
return person;
})
看法
<section>
<h2 class="page-title" data-bind="text: title"></h2>
<label for="firstName">Title</label><input type="text" name="firstName" data-bind="value: currentPerson().title" />
<label for="firstName">Fisrt Name</label><input type="text" name="firstName" data-bind="value: currentPerson().fistName" />
<label for="firstName">Last Name</label><input type="text" name="firstName" data-bind="value: currentPerson().lastName" />
</section>