我是Knockout的新手,我有以下问题:
我有来自数据库的ID并且每个Id都有相应的描述(这是.NET中的实际枚举,但我不认为这在这个问题中很重要。)
例如,
a)变量“PType
”:0 - Undefined; 1 - Low Structure; 2 - Hight Structure
b)变量“ClientType
”:0 - Undefined, 1 - P Type; 2 - S Type
其他一些变量也是
如何正确定义此依赖项的模型? 目前我只有像
这样的IDPType: ko.observable();
ClientType: ko.observable();
我在页面上显示ID:
<span data-bind="text: PType"></span>
<span data-bind="text: ClientType"></span>
但是,我需要为用户显示:PTypeDescription
和ClientTypeDescription
。我相信这些是某种因变量,但不能让它发挥作用。
答案 0 :(得分:1)
首先我假设你已经知道你有什么枚举,当你通过AJAX获取数据时,你得到的枚举值代表integer
而不是string
您可以轻松地在Javascript中模拟枚举(查看this article):
var PType = { 0: "Undefined", 1: "Low Structure", 2: "Hight Structure" }
var ClientType = { 0: "Undefined", 1: "P Type", 2: "S Type" }
因此,您的视图模型可能类似于:
var itemObj = {
PType: ko.observable(0);
ClientType: ko.observable(0);
property1:ko.observable('')// put here the other properties if you have more
}
要将你的枚举作为枚举重新编写,你可以编写调用函数,该函数接受value
(“你的枚举键”)以及使用哪个枚举(“你可以使用内联函数”)。
<强> JsFiddle Demo 强>
<强>更新强>
将此SO answer检查为JS中Enums的另一个实现,它简单有效