如何提供数据绑定为字符串或javascript对象?

时间:2019-01-03 18:46:33

标签: knockout.js

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

/** 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,但是不确定是否正是我要找的东西。

1 个答案:

答案 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.
    }
}