如何提供数据绑定作为字符串或 javascript 对象?
How to provide data-bind as string or javascript object?
我有一个 "options" 绑定下拉列表,如下所示:
<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>
我在我的应用程序的各个地方都使用了这个绑定,无论如何要声明数据绑定的全部内容=“contents" 并将其作为字符串或 javascript 对象传入(注入?)?我检查了 preprocessing bindings,但是,我不确定这是否是我要找的。
正如您所建议的,您可以创建一个自定义绑定,它只有一个 preprocess
方法来设置所有其他绑定。例如:
ko.bindingHandlers.filterBinding = {
preprocess: function(value, name, addBinding) {
addBinding('options', 'baseViewModel.filtersViewModel');
addBinding('optionsCaption', '"Choose..."');
addBinding('optionsText', 'function(self) { return self.Name }');
// etc.
}
}
我有一个 "options" 绑定下拉列表,如下所示:
<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>
我在我的应用程序的各个地方都使用了这个绑定,无论如何要声明数据绑定的全部内容=“contents" 并将其作为字符串或 javascript 对象传入(注入?)?我检查了 preprocessing bindings,但是,我不确定这是否是我要找的。
正如您所建议的,您可以创建一个自定义绑定,它只有一个 preprocess
方法来设置所有其他绑定。例如:
ko.bindingHandlers.filterBinding = {
preprocess: function(value, name, addBinding) {
addBinding('options', 'baseViewModel.filtersViewModel');
addBinding('optionsCaption', '"Choose..."');
addBinding('optionsText', 'function(self) { return self.Name }');
// etc.
}
}