2013-04-24 3 views
0

У меня есть наблюдаемое имя packing, которое содержит кучу свойств. Один из них является observableArray по имени isotopesИмея наблюдаемый такой же контент, как и другой с нокаутом

packing 
- description 
- type 
- ... 
- isotopes 
    - name 
    - weight 

Я хотел бы создать отдельную наблюдаемый иметь такое же содержание, как packing.isotopes. Это музыка будет динамичной, поэтому, когда что-то добавляется/удаляется из packing.isotopes, это должно быть также добавлено/удалено внутри mycopy.

Я уже попробовать:

var mycopy = ko.computed(function() { return packing.isotopes; }); 

Но это не работает. mycopy есть не определено.

Любая идея?

Спасибо.


UPDATE

Ниже мой код:

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

Теоретически это должно работать. Но поскольку вы не разместили свой полный код, я могу только предположить, что у вас есть некоторые проблемы с определением области видимости. Таким образом, внутри вашей расчетной «упаковки» не определено ... Пожалуйста, разместите более жалкий пример, где у вас также есть определение 'упаковка'! – nemesv

+0

Я обновил свой вопрос, чтобы показать вам мой код. – Bronzato

ответ

0

Рассчитанные наблюдаемыми должны отслеживать другие наблюдаемые, но вы не имеете любой наблюдаемый вызов внутри. Кажется, что вам не нужно computed.

var mycopy = packing.isotopes; 
Смежные вопросы