我有一个页面列出了多个项目,这些项目是可观察数组中的轻量级实体。使用 foreach 循环,我希望标签的 CSS 根据项目的状态而变化。
因为我使用的是breeze,所以我定义var projects = ko.observableArray();
并处理其余部分,包括来自相关实体(projectStatus)的值。对于我要设置样式的元素,它存在于foreach: projects
列表中,并且具有data-bind="text: projectStatus().name
. 这完美地工作。但是,当我在视图模型中为 CSS 值编写计算出的 observable 时,它会在第 3 行(如下)引发一个未定义的错误。否则(我已经检查过)如果函数返回有效字符串,则该函数适用于 CSS:
projectStatusStyle = ko.computed(function () {
var x = "left label label-large label-info";
var projStatus = projects().projectStatus().name();
var style = "left label label-large label-"
switch (projStatus) {
case 'Live':
x = style + "success";
break;
case 'Identified':
x = style + "info";
break;
case 'In conversation':
x = style + "purple";
break;
case 'Complete':
x = style + "grey";
break;
case 'Unsuccessful':
x = style + "yellow";
break;
}
return x;
},vm);
所以我的问题是,我应该如何引用 projects().projectStatus().name(); 可观察值?
谢谢