假设你有一个“车辆”列表——你有一个由这些 ko.observable() 组成的 observableArray。
您让您的用户添加具有以下内容的新车辆:
var emptyVehicle = {
"make": "chevrolet",
"model": "corvette"
};
app.on('CLICKED_ADD_VEHICLE', function () {
var vehicle = new vehicleViewModel(emptyVehicle);
vehicle.hasWheels(true);
innerModel.sets.push(set);
});
如果他们保存车辆,您会从您的数据服务中获得一辆真正的车辆,然后将空白车辆替换为:
app.on('CLICKED_SAVE', function (oldVehicle) {
var newVehicle = new vehicleViewModel(dataservice.createVehicle(oldVehicle));
innerModel.vehicles.remove(oldVehicle);
innerModel.vehicles.push(newVehicle);
});
我知道我在这里留下了一些代码,但这更像是一个实践/方法问题,而不是一个代码问题。这是将新项目添加到列表的可接受方法吗?新建一个临时模板,并在用户保存时将其丢弃以代替实际项目?