Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 可观测数字的剔除条件格式无效_Javascript_Html_Css_Knockout.js - Fatal编程技术网

Javascript 可观测数字的剔除条件格式无效

Javascript 可观测数字的剔除条件格式无效,javascript,html,css,knockout.js,Javascript,Html,Css,Knockout.js,在这种情况下,我希望根据对象的值有条件地格式化某个区域的背景颜色。在本例中,它是一件家具及其serialNumber。当然,这是简化的,因为我想要一个三重条件。无论值是0、1还是2,但我甚至无法让它在更简单的条件下工作 不知道为什么它不起作用。似乎它应该足够简单。给你一把小提琴: HTML <tr data-bind="foreach: furnitures" id="furnitureArea" data-bind="style: { backgroundColor: serialNu

在这种情况下,我希望根据对象的值有条件地格式化某个区域的背景颜色。在本例中,它是一件家具及其
serialNumber
。当然,这是简化的,因为我想要一个三重条件。无论值是0、1还是2,但我甚至无法让它在更简单的条件下工作

不知道为什么它不起作用。似乎它应该足够简单。给你一把小提琴:

HTML

<tr data-bind="foreach: furnitures" id="furnitureArea" data-bind="style: { backgroundColor: serialNumber > 1 ? 'red' : 'grey' }">

在HTML片段中,您需要调用数据绑定中的serialNumber函数,如下所示

缺少
()



当您想要处理可观察值时,请确保使用
()

,这是一个很好的答案。非常感谢。我认为,通过在viewmodel中使用逻辑,还可以考虑更复杂的条件,例如将
serialNumber
的颜色更改为绿色、黄色或红色,等于1、2或3。没错。在视图模型中使用这种类型的逻辑要好得多。然后,视图只需显示结果。
var Room = function (name, furnitures) {
  var self = this;
  self.name = ko.observable(name);
  self.furnitures = ko.observableArray([]);
  self.serialNumber = ko.observable();
  ...
var Furniture = function (data) {
    var self = this;
    self.name = ko.observable('');
    self.size = ko.observable('');
    self.serialNumber = ko.observable();
    self.rowStyle = ko.computed({
        read: function () {
            return self.serialNumber() > 1 ? 'red' : 'grey'';
        },
        deferEvaluation: true
    });

    if (typeof data !== 'undefined') {
        self.name(data.name);
        self.size(data.size);
        self.serialNumber(data.serialNumber);
    }
}
<tr data-bind="foreach: furnitures" id="furnitureArea" data-bind="style: { backgroundColor: serialNumber() > 1 ? 'red' : 'grey' }">