[英]KnockoutJS: parameterize data-bind
我想为输入元素上的数据绑定使用一个变量。 这是我尝试过的:
<!-- 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: 变量有效:它用作 label。 但是,“$data.dataBind”的使用永远不会被评估,它只是作为一个字符串保留。 如何以这种方式获取要参数化的输入元素的数据绑定? 谢谢。
根据我的经验,我相信这是不可能的,你试图实现它的方式。 要正确执行此操作,您可以创建一个自定义组件,以便您可以根据传递的对象/参数控制发生的情况
现在,为了让它快速工作,您可以更改 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">
在每次迭代中,任一输入都将被渲染和绑定,具体取决于 object 的标志。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.