Reputation: 99
I declare this in knockout:
self.quizAnswer = ko.observableArray([{val: ko.observable()}]);
I can push the value there:
self.quizAnswer.push({ val: ko.observable('new') });
But tell me please how to easily read/rewrite the value like:
self.quizAnswer()[#position#].val = "new value";
I tried almost everything, but I dont know.
Thank you very much!!!
Upvotes: 1
Views: 574
Reputation: 4073
Because observable is function, you should invoke it without parameter to read its value:
self.quizAnswer()[0].val();
or with parameter to set new value:
self.quizAnswer()[0].val("new value");
Another option is to use knockout-es5 plugin. If you use this plugin you can invoke something like this:
ko.track(self.quizAnswer()[0]);
and after that you can access all observable of "tracked" objects like regular fields:
self.quizAnswer()[0].val = "new value"
Upvotes: 1