我想对输入元素上的数据绑定使用变量。这是我尝试过的:
<!-- ko foreach: [
{dataBind: {value: thing1}, txt: 'thing Name:'},
{dataBind: {maskedThing: thing2}, txt: 'thing Amount:'},
{dataBind: {value: thing3}, txt: 'thing3 Name:'}
] -->
<div class="row">
<div class="col-sm-12">
<div class="form-group">
<label class="control-label pull-left"><span data-bind="text: txt"></span></label>
<input type="text" class="form-control" data-bind="$data.dataBind">
</div>
</div>
</div>
<!-- /ko -->
txt:变量起作用:它用作标签。但是,“ $ data.dataBind”用法永远不会得到评估,它只是作为字符串保留。如何以这种方式获取输入元素的数据绑定参数化?谢谢。
答案 0 :(得分:0)
根据我的经验,我认为这是您无法实现的方式。 要正确执行此操作,您可以创建一个自定义组件,以便可以根据传递的对象/参数来控制发生的事情
现在,要使其以最快的速度运行,您可以更改html并添加if
绑定以控制呈现的内容以及对象上的标志,如下所示:
....
{dataBind: {value: thing1}, txt: 'thing Name:', isMasked: false},
{dataBind: {maskedThing: thing2}, txt: 'thing Amount:', isMasked: true},
{dataBind: {value: thing3}, txt: 'thing3 Name:', isMasked: false}
....
<input type="text" class="form-control" data-bind="if: isMasked, maskedThing: txt">
<input type="text" class="form-control" data-bind="ifnot: isMasked, value: txt">
在每次迭代中,根据对象的标志,任一输入都将被渲染并绑定。