我有一个“选项”绑定下拉列表,如下所示:
/** Exceptions, generics, and casting omitted for readability. */
@Provides SomeInterface getSomeInterface(
MyAppPreferences preferences,
Injector injector) {
Class<?> clazz = Class.forName(preferences.getSomeInterfaceImplName());
return injector.getInstance(clazz);
}
我正在应用程序的各个位置使用此绑定,无论如何,都需要声明data-bind =“ contents ”的全部内容并将其传递给(注入?)为字符串还是javascript对象?我已经检查过preprocessing bindings,但是不确定是否正是我要找的东西。
答案 0 :(得分:1)
如您所建议的,您可以创建一个自定义绑定,该自定义绑定只有一个preprocess
方法,该方法设置所有其他绑定。例如:
ko.bindingHandlers.filterBinding = {
preprocess: function(value, name, addBinding) {
addBinding('options', 'baseViewModel.filtersViewModel');
addBinding('optionsCaption', '"Choose..."');
addBinding('optionsText', 'function(self) { return self.Name }');
// etc.
}
}