代码之家  ›  专栏  ›  技术社区  ›  petrosmm Saeed Neamati

如何以字符串或javascript对象的形式提供数据绑定?

  •  0
  • petrosmm Saeed Neamati  · 技术社区  · 6 年前

    我有一个“选项”绑定下拉列表,如下所示:

    <select class="form-control" data-bind="options: baseViewModel.filtersViewModel, optionsCaption: 'Choose...', optionsText: function(self) { return self.Name }, value: baseViewModel.baseFilter(), optionsValue: 'Value', event: { change: function() { console.log('test'); applyFilter(baseViewModel.baseFilter()); return true; } }">
        <option value="">Choose...</option>
        <option value="{'sort':[]}">water group</option>
    </select>
    

    我正在应用程序中的不同位置使用此绑定,是否仍要声明数据绑定的全部内容=“ 内容 “然后把它传进去(注射?)作为字符串还是JavaScript对象?我已经检查过了 preprocessing bindings 但是,我不确定这是否是我要找的。

    1 回复  |  直到 6 年前
        1
  •  1
  •   Michael Best    6 年前

    正如您建议的,您可以创建一个自定义绑定 preprocess 设置所有其他绑定的方法。例如:

    ko.bindingHandlers.filterBinding = {
        preprocess: function(value, name, addBinding) {
            addBinding('options', 'baseViewModel.filtersViewModel');
            addBinding('optionsCaption', '"Choose..."');
            addBinding('optionsText', 'function(self) { return self.Name }');
            // etc.
        }
    }