Попытка вставить данные, не относящиеся к модели, приводит к нулю

Я пытаюсь набрать некоторые цифры, которые не имеют прямого отношения к модели на основе этого примера.

Мой код

HTML:

<input data-bind="value: screenText" />
<div>
    <div>
        <div data-bind="with: '1'">
            <a data-bind="text: $data,click: $root.keyPushed" href="#"></a>
        </div>
        <div data-bind="with: '2'">
            <a data-bind="text: $data,click: $root.keyPushed"  href="#"></a>
        </div>
        <div data-bind="with: '3'">
            <a data-bind="text: $data,click: $root.keyPushed"  href="#"></a>
        </div>
    </div>
    <div>
        <div data-bind="with: '4'">
            <a data-bind="text: $data,click: $root.keyPushed"  href="#"></a>
        </div>
        <div data-bind="with: '5'">
            <a data-bind="text: $data,click: $root.keyPushed"  href="#"></a>
        </div>
        <div data-bind="with: '6'">
            <a data-bind="text: $data,click: $root.keyPushed"  href="#"></a>
        </div>
    </div>
    <div>
        <div data-bind="with: '7'">
            <a data-bind="text: $data,click: $root.keyPushed"  href="#"></a>
        </div>
        <div data-bind="with: '8'">
            <a data-bind="text: $data,click: $root.keyPushed"  href="#"></a>
        </div>
        <div data-bind="with: '9'">
            <a data-bind="text: $data,click: $root.keyPushed"   href="#"></a>
        </div>
    </div>
</div>


<a>Llamar</a>
<div data-bind="with: 'hi'">
    <a data-bind="text: $data,click: $root.keyPushed" href="#"></a>
</div>

ДЖАВА:

package dew.demo.namesmodel;

import java.util.logging.Level;
import java.util.logging.Logger;
import net.java.html.json.Model;
import net.java.html.json.Property;
import net.java.html.json.Function;

@Model(className = "Data", properties = {
    @Property(name = "screenText", type = String.class)
})
class DataModel {
   @Function
    static void keyPushed(Data model, String keyPress) {
        System.out.println(keyPress);
        model.setScreenText(model.getScreenText()+keyPress);
    }

   static {
    Data ui = new Data();
        ui.setScreenText("1");
        ui.applyBindings();
   }

}

Как вы, возможно, заметили, идея состоит в том, чтобы использовать ввод как отображение и добавлять значение ключа при нажатии.

¿Возможно ли это, или я должен использовать подход, чтобы принудительно включить его в модель данных?

Заранее спасибо.

1 ответ

Решение

В вашей функции вы устанавливаете $data, используя with-binding. Итак, вы хотите получить доступ к $data в вашей функции. Сделай это так:

@Function
static void keyPushed(Data model, String data) {
    System.out.println(data);
    model.setScreenText(model.getScreenText()+ data);
}
Другие вопросы по тегам