2013-04-17 3 views
2

Будучи тем, что наблюдаемые массивы нокаута обновляются только при изменении элемента в массиве, если этот элемент сам является наблюдаемым, я пытаюсь «нажимать» элемент на наблюдаемый массив, но делаю это наблюдаемым. Я попытался следующие утверждения, но и результат, имеющий неопределенное значение в моем наблюдаемом массиве:Нажатие нокаута, наблюдаемого в наблюдаемый массив нокаута

viewModel.myObservableArray.push(ko.observable()); 

и

viewModel.myObservableArray.push(new ko.observable()); 

, что было бы правильным способом это?

+0

, который не правда. Наблюдаемый массив обновляется, когда элементы в наблюдаемом массиве добавляются или удаляются (сами элементы не должны быть наблюдаемыми). если вы хотите нажать заметку, тогда вам нужно сделать viewModel.myOBservableArray.push (ko.observable ('some value')), если это строка или viewModel.MyObservableArray.push (ko.observable ({id: 1, name: 'something'})) –

ответ

2

сделать то, что вы пытаетесь поставить в модели объекта, как этот

function MyObject(initValuye){ 
var self = this; 
    var value = ko.observable(initValuye); 
} 

В модели

viewModel.myObservableArray.push(new MyObject(someValue)); 
+1

Спасибо, это действительно работает, но я пытался сделать это без необходимости создавать объект. –

0

Вы можете попробовать, как этот также

viewModel.myObservableArray.push(ko.observable("Test")); 

viewModel.myObservableArray.push(new ko.observable("Test"));