Bind to simple array of strings
If I want to bind a template to a plain old array of strings, what do I put in the ${??} expression?
I hope this snippet isn't too short so as to confuse:
<ul data-bind="template: { name: 'authorTemplate', foreach: authors }">
</ul>
where authors is simply ["a", "b", "c"]
<script type="text/x-jquery-tmpl" id="authorTemplate">
<li>${what_do_I_put_here???}</li>
</script>
I've tried: val
value
this
and this.toString()
. The last two displayed [object Object] so I suspect I'm pretty close there.
Solution 1:
From the documentation, the answer is:
When using a template:
${$data}
When not using a template:
$data
Solution 2:
For unnamed array (JSON like: ["value1", "value2"]), it would be:
<ul data-bind="foreach: $root">
<li data-bind="text: $data"></li>
</ul>
$root keyword does the trick.