将一个类从viewModel绑定到一个div,并在knockout中使用现有的硬编码类

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将一个类从viewModel绑定到一个div,并在knockout中使用现有的硬编码类相关的知识,希望对你有一定的参考价值。

假设我有一个foreach创建一个div,其中一个类必须是硬编码的(其他元素的位置和高度由这些div设置并由类调用,因此只有在绑定时才能计算它发生)。

我需要从viewModel添加一个绑定类到该类,但我无法在网络上的任何地方找到如何执行此操作。

例:

<div class="message_image" data-bind="attr: {class : $data.float_class}" >
     <img data-bind='attr:{src: $data.img_url}' />
</div>

我知道这是错的,这是我想要达到的一个例子....

"message_image"类必须硬编码到html文件中。

此div具有在敲除绑定之前使用的属性。我需要添加$data.float_class中的类。

答案

您需要使用css binding,其中:

如果要使用动态CSS类名,则可以传递与要添加到元素的CSS类或类对应的字符串。

ko.applyBindings({
    test: [{
        float_class: "float1"
    }, {
        float_class: "float2"
    }]
})
.message_image {
    background: yellow;
}
.float1 {
    color: red;
}
.float2 {
    color: green;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.2.0/knockout-min.js"></script>
<div data-bind="foreach: test">
    <div class="message_image" data-bind="css: $data.float_class">Test</div>
</div>

以上是关于将一个类从viewModel绑定到一个div,并在knockout中使用现有的硬编码类的主要内容,如果未能解决你的问题,请参考以下文章

将 WPF xaml 绑定到 ViewModel 而不构造它

如何使用WPF从bindingexpression解析绑定对象?

准备好 Dialog ViewModel 绑定,调用 Dialog 并在 MVVM 中从它返回数据

将 CheckListBox 绑定到 ViewModel

将 StackLayout 绑定到 ViewModel 不起作用

关于 RxSwift/RxCocoa 与 combineLatest 绑定的问题