Knockout.js如何使用三元运算符输入所需属性

时间:2019-04-05 18:13:37

标签: knockout.js

理想情况下,我希望在输入中添加三元运算符,以便在选择特定的运输承运人的情况下需要输入,而对于所有其他承运人则是可选的。这是我到目前为止尝试过的:

<input class="input-text" type="text" maxlength="60" name="shipper_number"  attr="id: 'shipper_number_' + method.method_code + '_' + method.carrier_code" data-bind="value: checkoutConfig.quoteData.shipper_number,
                    required: method.carrier_title == 'DHL' ? 'required' : ''" /> //This is the one I tried and it didn't work

我尝试将必填字段添加到data-bind属性,但是没有用。我对淘汰赛知之甚少,所以我什至不知道自己是否在正确的轨道上。任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:1)

您可以使用 attr 绑定。如果method.carrier_title是可观察的,则需要使用()来获取值,然后将其与字符串进行比较

const viewModel = {
  title: ko.observable('foo'),
  title2: ko.observable('bar')
}

ko.applyBindings(viewModel)
<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.4.2/knockout-min.js"></script>
<form>
  Input 1: <input type="text" data-bind='attr:{ required: title() === "foo" }'>
  Input 2: <input type="text" data-bind='attr:{ required: title2() === "notbar"}'>
  <input type="submit">
</form>