KnockoutJS:创建绑定处理程序以将值更改为枚举

时间:2017-07-25 16:30:49

标签: javascript knockout.js

我有一个敲除自定义绑定,它接受一个值并返回一个枚举。这是为了用户可读性。问题是,当传入此绑定的参数时,它只是返回空白。我已经尝试将参数作为observable传递,例如:PurchaseOrderStatus [Status()]。

观点:

 <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,那么用户将看到Finalized。

1 个答案:

答案 0 :(得分: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>