javascript - inline with binding with an observable array -
i have model property defined follows:
function field(name, size, type){ this.name = ko.observable(name); this.size = ko.observable(size); this.type = ko.observable(type); this.map = ko.observable(); }
i have observable array (fields
) defined array of above object. on ui interaction map
property of field object associated object. header
object properties headername
, index
.
i trying bind fields follows:
<ul data-bind="foreach: fields"> <li class="form-inline"> <span data-bind="text:name"></span> -> <span data-bind="text: map.headername"></span> </li> </ul>
but unsuccessful: http://jsfiddle.net/deostroll/sena8/2/
tried follows:
<ul data-bind="foreach: fields"> <li class="form-inline"> <span data-bind="text:name"></span> -> <span data-bind="with: map"><span data-bind="headername"></span></span> </li> </ul>
still doesn't work. http://jsfiddle.net/deostroll/sena8/3/
you can solve without using with
binding
<span data-bind="text: map() && map().headername"></span>
note need ()
after map
value , using map() &&
make sure expression won't evaluated unless map
set value.
demo jsfiddle.
of course using with
binding more elegant , proper solution handling these use cases, , you've made it, you've forgotten text
in inner binding expression:
<span data-bind="with: map"><span data-bind="text: headername"></span></span>
demo jsfiddle.
Comments
Post a Comment