marca d'água de entrada de texto usando o bindingHandler personalizado

Eu tenho tentado criar um bindingHandler personalizado que eu possa usar para dar um comportamento de marca d'água aos campos de entrada de texto.

Porwatermark Quero dizer: adicionar valores padrão aos campos de texto que são removidos em foco e substituídos no desfoque se o campo de texto ainda estiver vazio

Eu consegui fazer isso funcionar como demonstrado neste jsfiddle:http://jsfiddle.net/rpallas/nvxuw/

Eu tenho 3 perguntas sobre esta solução:

Existe alguma maneira de alterá-lo para que eu tenha que declarar o valor da marca d'água apenas uma vez? Atualmente eu tenho que colocá-lo no lugar onde eu declaro a ligação e eu também tenho que inicializar o observável com o mesmo valor no viewModel - como ele não terá nenhum valor inicial.Existe uma maneira melhor de chegar ao subjacente observável ao qual o valor dos elementos está vinculado. No momento, estou usando o allBindingsAccessor, mas isso parece errado para mim. Originalmente eu estava apenas definindo o valor usando jquery$(element).val('') mas isso também parecia errado. Qual é o melhor, ou existe uma maneira melhor?Alguém tem ou sabe de uma solução existente para este problema? Eu estou reinventando a roda?

questionAnswers(2)

yourAnswerToTheQuestion