2015-11-27 2 views
0

В KO документации есть пример преобразователя значения с использованием вычисляемых наблюдаемых: http://knockoutjs.com/documentation/computed-writable.html#example-3-a-value-converterДержите преобразователь значений вне поля зрения-модели

Однако, я хотел бы подход, при котором преобразователь значения находится вне вида-модели , например, как работает IValueConverter в Windows, модель представления ничего не знает о конвертере.

Я думаю о функции, которые могли бы позволить мне написать что-то вроде этого:

data-bind="converter : { source: myBindingObject, converter: app.myConverter }" 

и преобразователь является объектом с функцией чтения/записи:

app.myConverter = { 
    convert: function (value, parameter) { 

    }, 
    convertFrom: function (value, parameter) { 

    } 
}; 

Может быть, есть путь, о котором я уже не знаю.

Например, что я описываю звуки, похожие на расширитель KO, но это требует свойство в смотровом-код модели использовать .extend(extender), который, как я сказал, это не то, что я хочу

ответ

1

Woa, резервное копирование в секунду. Вы задаете очень широкий вопрос, где трудно увидеть практическое приложение/где нам не хватает фактического контекста. Вы уверены, что это не XY-problem? Возможно, вы ищете классическое или прототипное наследование DRY для своих моделей взглядов, и, когда вы это сделали, оно больше не похоже на требование вывести это из ваших моделей взглядов.

Другими словами: дайте нам знать почему вам это нужно, и дайте нам практическую проблему/сценарий/воспроизведение. Это облегчит нам помощь.

В любом случае, существует только одна соответствующая конструкция нокаута по умолчанию, которую я знаю об этом, на прямой вопрос, который вы задаете: custom bindings. Они также имеют эквивалент чтения и записи, но затем нацелены на действие DOM (чтение моделей просмотра в DOM и наоборот). Они ненавязчивы для вашей модели просмотра, а не в DOM.

Смежные вопросы