0

我有一个名为 observable 的名称packing,其中包含一堆属性。其中之一是一个名为 observableArrayisotopes

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,
        ...
    };
}
4

1 回答 1

0

Computed observables 应该跟踪其他 observables,但是你没有任何 observable 调用。看来你永远不需要computed

var mycopy = packing.isotopes;
于 2013-04-24T08:00:42.837 回答