敲除 JS 选项数据绑定多个值
knockout JS option data-bind multiple values
我想为 data-tokens 属性添加多个值:
<option data-bind="text: customer_display_name, value: customer_id, attr: {'data-tokens': customer_first_name, customer_last_name}"></option>
不幸的是,这行不通,只有数据令牌 "customer_first_name" 有效,而 "customer_last_name" 无效。
如何添加多个值?
编辑:
我也想在选项绑定中做同样的事情:
<select class="form-control selectpicker" data-live-search="true"
data-bind="options: $parent.customers, optionsText: 'customer_display_name', optionsValue: 'customer_id', value: customer_id,
event: {change: $parent.changeWorkCustomer}, attr: {'data-tokens': [$parent.customer_first_name, $parent.customer_last_name]}, css: { customer_fav: $parent.fav > 0 }">
它不是这样工作的。感谢您的帮助。
你的意思是你想要两个变量的值,中间有一个逗号?
试试这个:
attr: {'data-tokens': (customer_first_name + ', ' + customer_last_name)}
您也可以通过将它们包装在一个数组中然后 unwrap
通过调用它们的值来做到这一点:
data-bind="attr: {'data-tokens': [attr1(), attr2()]}
ko
会找出需要做的事情并输出多个值:
function MyViewModel() {
this.attr1 = ko.observable('test1')
this.attr2 = ko.observable('test2')
}
ko.applyBindings(new MyViewModel());
<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.4.2/knockout-min.js"></script>
<div data-bind="attr: {'data-tokens': [attr1(), attr2()]}">Testing!</div>
<input type="text" data-bind="value: [attr1(), attr2()]" />
如果您在 Testing!
上执行 inspect element
,您将看到结果是:
data-tokens="test1,test2"
我想为 data-tokens 属性添加多个值:
<option data-bind="text: customer_display_name, value: customer_id, attr: {'data-tokens': customer_first_name, customer_last_name}"></option>
不幸的是,这行不通,只有数据令牌 "customer_first_name" 有效,而 "customer_last_name" 无效。 如何添加多个值?
编辑: 我也想在选项绑定中做同样的事情:
<select class="form-control selectpicker" data-live-search="true"
data-bind="options: $parent.customers, optionsText: 'customer_display_name', optionsValue: 'customer_id', value: customer_id,
event: {change: $parent.changeWorkCustomer}, attr: {'data-tokens': [$parent.customer_first_name, $parent.customer_last_name]}, css: { customer_fav: $parent.fav > 0 }">
它不是这样工作的。感谢您的帮助。
你的意思是你想要两个变量的值,中间有一个逗号?
试试这个:
attr: {'data-tokens': (customer_first_name + ', ' + customer_last_name)}
您也可以通过将它们包装在一个数组中然后 unwrap
通过调用它们的值来做到这一点:
data-bind="attr: {'data-tokens': [attr1(), attr2()]}
ko
会找出需要做的事情并输出多个值:
function MyViewModel() {
this.attr1 = ko.observable('test1')
this.attr2 = ko.observable('test2')
}
ko.applyBindings(new MyViewModel());
<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.4.2/knockout-min.js"></script>
<div data-bind="attr: {'data-tokens': [attr1(), attr2()]}">Testing!</div>
<input type="text" data-bind="value: [attr1(), attr2()]" />
如果您在 Testing!
上执行 inspect element
,您将看到结果是:
data-tokens="test1,test2"