gpt4 book ai didi

css - 添加带有 css 绑定(bind)的动态类

转载 作者:太空宇宙 更新时间:2023-11-04 01:40:57 25 4
gpt4 key购买 nike

我想在 payment-method 后面添加一个类,通过带有 knockout css 绑定(bind)的函数(在 Magento 2.1 中)。所以这是当前代码:

<div class="payment-method" data-bind="css: {'_active': (getCode() == isChecked())}">
<div class="payment-method-title field choice">
<input type="radio"
name="payment[method]"
class="radio"
data-bind="attr: {'id': getCode()}, value: getCode(), checked: isChecked, click: selectPaymentMethod, visible: isRadioButtonVisible()"/>

该类由 getCode() 返回,上面使用 id 和值。所以我想我可以这样做:

<div class="payment-method" data-bind="css: {'_active': (getCode() == isChecked()), getCode()}">

但是它失败了:

knockout.js:2624 Uncaught SyntaxError: Unable to parse bindings. Bindings value: css: {'_active': (getCode() == isChecked()), getCode() } Message: Unexpected token }

<div class="payment-method" data-bind="css: getCode()">

这有效。

<div class="payment-method" data-bind="css: {getCode()}">

这不是。

<div class="payment-method" data-bind="css: {'_active': (getCode() == isChecked())}, attr: {'class': getCode()}">

这也有效,但会覆盖 payment-method 类并且 _active 类最初也不再设置。

如何设置动态类?

最佳答案

这段代码是多余的,因为 css 数据绑定(bind)正在被您的 attr 绑定(bind)覆盖。

<div class="payment-method" data-bind="css: {'_active': (getCode() == isChecked())}, attr: {'class': getCode()}">

这就是你如何做你的动态类(假设这些属性是可观察的):

<div class="payment-method" data-bind="css: CSS">

self.CSS = ko.computed(function() {
var code = self.getCode();
var isChecked = self.isChecked();
return code + ' ' + (code == isChecked ? '_active' : '');
}, viewModel);

关于css - 添加带有 css 绑定(bind)的动态类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45412839/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com