Как найти переменную в списке строк в DukeScript

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

HTML:

<h1>Java Dictionary</h1>
<hr>
<h2 data-bind="text: searchPhrase"></h2>
<button data-bind:"click: changeFP">Search</button>

<h2 data-bind="text: foundPhrase, enable:isInCatalog"></h2>

ДЖАВА:

package dew.demo.ko4j;
import net.java.html.json.*;

@Model(className="Dictionary", properties={
  @Property(name="searchPhrase", type=String.class),
  @Property(name="foundPhrase", type=String.class)
})

class Demo {

  @ComputedProperty static boolean isInCatalog(String searchPhrase) {
    if(searchPhrase.equalsIgnoreCase("Hello World!")){
      return true;
    }
     return false;
  }  

  @Function static void changeFP(Dictionary model){
    if( model.isIsInCatalog( ) ){
        model.setFoundPhrase("found");
    }
  }

  static {
    Dictionary model=new Dictionary("Hello World!","please click to search");
    model.applyBindings();
  }
}

PS: Пожалуйста, используйте DEW, чтобы попробовать пример, потому что именно там я тестировал.

РЕДАКТИРОВАТЬ: Идеальный сценарий

  1. в окне отображается "Hello World!" и "пожалуйста, нажмите для поиска" сообщений.
  2. пользователь нажимает кнопку
  3. "пожалуйста, нажмите для поиска" сообщение изменяется на "найдено"

1 ответ

Решение

DEW должна была показать вам одну синтаксическую ошибку в вашем HTML-коде, выделив ее красным цветом. Атрибут привязки данных на кнопке не является допустимым HTML. Вы используете двоеточие ":" вместо "=". Поэтому ваше действие никогда не называется.

При использовании NetBeans это легче обнаружить, поскольку NB также выдает сообщение об ошибке, объясняющее, что не так.

Вот обновленный пример.

Другие вопросы по тегам