我可以在模板绑定中传递变量吗?

Dev*_*ate 8 knockout.js knockout-templating

我知道这不是一个长期使用的好方法,但是为了排除故障,有什么方法可以在绑定模板时传递一个简单的字符串,然后将其作为模板中的变量进行访问?例如,如果这是我的约束:

<!-- ko template: { name: tmplOne }, myvar: 'apple' -->
Run Code Online (Sandbox Code Playgroud)

这是tmplOne:

<div>
    <span>Fruit: </span>
    <span data-bind="text: myvar"></span>
</div>
Run Code Online (Sandbox Code Playgroud)

这将导致以下结果:

fruit: apple
Run Code Online (Sandbox Code Playgroud)

即使我必须在名为"fruit"的viewmodel中声明一个observable,我可以手动将其设置为模板绑定吗?

小智 6

使用

<!-- ko template: { name: tmplOne, templateOptions: {myvar: 'apple'} } -->
Run Code Online (Sandbox Code Playgroud)

更多信息:http://www.knockmeout.net/2011/03/quick-tip-reusing-template-by-passing.html


Org*_*cat 5

如果您愿意,您可以为模板绑定提供数据参数并定义对象文字,就像您正在做的那样:

<!-- ko template: { name: tmplOne }, myvar: 'apple' -->
Run Code Online (Sandbox Code Playgroud)

而是这样做:

<!-- ko template: { name: tmplOne, data: { myvar: 'apple' } } -->
Run Code Online (Sandbox Code Playgroud)

http://knockoutjs.com/documentation/template-binding.html