2017-07-25 8 views
0

値を取り、列挙型を返すノックアウトカスタムバインディングがあります。これはユーザーが読みやすくするためのものです。問題は、このバインディングのパラメータを渡すときに空白に戻ってしまうことです。私はObservableとして、例えばPurchaseOrderStatus [Status()]としてパラメータを渡そうとしました。KnockoutJS:値をenumに変更するためのバインディングハンドラを作成

ビュー:

<td style="vertical-align: top"> 
      <label>Status</label><br /> 
      <span data-bind="text: PurchaseOrderStatus[Status]"></span> 
     </td> 

のjavascript:

PurchaseOrderStatus = function() { }; 
PurchaseOrderStatus.prototype = { 
Closed: 67, 
Deleted: 68, 
Finalized: 70, 
Open: 79} 
PurchaseOrderStatus.registerEnum('PurchaseOrderStatus', false); 

それが動作するはずの方法は、値が70である場合、そのユーザーが確定見ているということです。

答えて

1

このようなことはどうですか。

function model() { 
 
    var self = this; 
 
    this.PurchaseOrderStatus = ko.observable({ 
 
    '67': 'Closed', 
 
    '68': 'Deleted', 
 
    '70': 'Finalized', 
 
    '79': 'Open' 
 
    }); 
 
    this.status = ko.observable('68'); 
 
} 
 

 
var mymodel = new model(); 
 

 
$(document).ready(function() { 
 
    ko.applyBindings(mymodel); 
 
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.4.2/knockout-min.js"></script> 
 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 

 
<span data-bind="text: PurchaseOrderStatus()[status()]"></span>

関連する問題