user3025493
user3025493

Reputation: 99

Accessing object value in knockout

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

Answers (1)

Sławomir Rosiek
Sławomir Rosiek

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

Related Questions