我有一个名为packing
的可观察对象,它包含许多属性。其中一个是名为isotopes
packing
- description
- type
- ...
- isotopes
- name
- weight
我想创建一个单独的observable,其内容与packing.isotopes相同。这是动态的,因此无论何时从packing.isotopes
添加/删除某些内容,都应在mycopy
内添加/删除。
我已经尝试过了:
var mycopy = ko.computed(function () { return packing.isotopes; });
但它不起作用。 mycopy
未定义。
有什么想法吗?
感谢。
更新
以下是我的代码:
define(function (require) {
...
var mycopy = ko.computed(function () { return packing.isotopes; });
var activate = function (routeData) {
var idTran = parseInt(routeData.idTran);
var idPack = parseInt(routeData.idPack);
var promise = (idPack == -1) ? // -1 --> create a new empty itinerary
ctxTransport.createPackingDetailTransport(idTran, packing) :
ctxTransport.getPackingById(idPack, packing);
return promise
.then(ctxTransport.getTransportById(idTran, transport))
.fail(somethingWrong);
function somethingWrong(error) {
var msg = 'Error retreiving data. ' + error.message;
logError(msg, error);
throw error;
}
}
var vm = {
activate: activate,
canDeactivate: canDeactivate,
resource: resource,
transport: transport,
packing: packing,
mycopy: mycopy,
...
};
}
答案 0 :(得分:0)
计算的observables应该跟踪其他可观察对象,但你内部没有任何可观察的调用。似乎您不需要computed
。
var mycopy = packing.isotopes;