2013-11-26 3 views
1

Я новичок в нокаут, и у меня есть следующий вопрос:выколотки depandent переменные: как определить структуру правильно

У меня есть Идентификаторы исходя из базы данных, и каждый Id имеет соответствующее описание (это actualy перечисление в .NET , но я не думаю, что это важно в этом вопросе).

Например,

а) для переменной "PType ": 0 - Undefined; 1 - Low Structure; 2 - Hight Structure б) для переменной" ClientType": 0 - Undefined, 1 - P Type; 2 - S Type и т.д. для некоторых других переменных также

Как правильно определить модель для этой зависимости ? В настоящее время у меня есть только Идентификаторы как

PType: ko.observable(); 
ClientType: ko.observable(); 

и показываю Идентификаторы на странице:

<span data-bind="text: PType"></span> 
<span data-bind="text: ClientType"></span> 

Однако, мне нужно что-то вроде: PTypeDescription и ClientTypeDescription, чтобы показать пользователю. Я считаю, что это как-то зависимые переменные, но не могут заставить его работать.

ответ

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

Update
Проверить это SO answer другому implementaion для Перечисления в JS, это простой и эффективный

Смежные вопросы