如何在dinamically创建的HTML上绑定事件?

时间:2015-12-11 13:11:45

标签: dukescript

当您点击标签时我有一个项目,中间部分的信息将通过调用一个函数来改变,该函数会更改在该特定部分中显示为HTML的模型的当前值。

如果生成的HTML包含更多标签,那么如何绑定它们以使它们像其他标签一样调用相同的功能?

Screenshot

现在当您单击中间的标记时,该方法不会被调用而且没有任何更改,但是当您单击上部的标记时,部分中间部分将被重新渲染。 我已尝试另一次调用applyBindings,但这会使上面的代码重复。

这是我要调用的函数的代码:

 @Function
    static void changeFP(final Dictionary model) {
        String searchP = model.getSearchPhrase();
        final List<String> listOfTerms = model.getTermList();
        for (int i = 0; i < listOfTerms.size(); i++) {
            final String term = listOfTerms.get(i);
            if (stringsAreEqual(term, searchP)) {
                model.setFoundPhrase(term);
                model.setDescription(model.getDefinitionList().get(i));
                model.setCode(model.getExampleCodeList().get(i));
                return;
            }
        }
        model.setDescription("");
        model.setCode("");
        model.setFoundPhrase(
                ResourceBundle.getBundle(
                        "web/aprendiendola/dictionaryweb/aprendiendola/dictionary/DiccionarioDeJava/TranslateMe"
                //        , Locale.getDefault()
                //  ,new Locale("ES")
                ).getString("NOTFOUND"));
    }

它应呈现的部分是:

<div class="card-panel blue lighten-2">
  <h3 data-bind="text: foundPhrase"></h3>
  <p class="white-text" data-bind="html:description" style="min-height: 100px;"></p>
</div>

应呈现的文字是:

CLASS_INFO= <p>Represent types of objects, but can also refer to other non-object conceps as <a class="chip blue lighten-3 white-text" href="#" data-bind="click:$root.changeSP ">Package-Info</a></p>

CLASS_INFO=是因为应用程序正在国际化)

1 个答案:

答案 0 :(得分:0)

如果你想为你的html的特定部分应用绑定,而不是myModel.applyBindings()你可以这样做:

Models.applyBindings(myModel, "id_of_tag");

这允许您将页面的不同部分绑定到不同的模型。让我知道,如果这解决了你的问题。如果不是,我将不得不查看整个项目以了解如何解决它。