【问题标题】:Extenders in Knockout JS with multiple parameters具有多个参数的 Knockout JS 中的扩展器
【发布时间】:2014-05-29 21:48:38
【问题描述】:

可以在knockout.js中使用extenders和多个参数

示例:

ko.extenders.currency = function(target, currencySymbol, position) {
    var result = ko.computed({
        read: target,  
        write: function(newValue) {
            var current = target(),
            if (position == 'left') {
                target(currencySymbol+target);
            } else {
                target(target+currencySymbol);
            }
        }
    }).extend({ notify: 'always' });

但是我如何将它绑定到 observable 呢?

this.One = ko.observable(one).extend({ currency: ???, currencySymbol: '£', position : 'left'});

【问题讨论】:

    标签: javascript knockout.js


    【解决方案1】:

    你需要为此使用一个对象,例如:

    ko.extenders.currency = function(target, options) {
        var currencySymbol = options.symbol,
            position = options.position;
        var result = ko.computed({
            read: target,  
            write: function(newValue) {
                var current = target(),
                if (position == 'left') {
                    target(currencySymbol+target);
                } else {
                    target(target+currencySymbol);
                }
            }
        }).extend({ notify: 'always' });
    

    然后,你会这样称呼它:

    this.One = ko.observable(one).extend({ currency: { symbol: '£', position : 'left' } });
    

    或者,如果您更喜欢可读性更高的代码:

    var currencyOptions = { symbol: '£', position: 'left' };
    this.One = ko.observable(one).extend({ currency: currencyOptions });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-08-08
      • 2019-09-15
      • 2012-07-09
      • 2014-05-07
      • 2019-06-06
      • 1970-01-01
      • 2014-04-29
      • 2015-11-10
      相关资源
      最近更新 更多