发送常量参数以更改 dukescript 中的模型字段
Sending constant parameters to change a model field in dukescript
如何发送任何参数来更改模型中的某些内容?
我尝试使用 setter 但失败了,当尝试从视图中进行操作时我遇到了一个奇怪的行为。
这就是我现在的情况。
HTML:
Selected name: <span data-bind="text: selectedName"></span>
<ul data-bind="foreach: names">
<li>
<a data-bind="text: $data, click: $root.nameSelected" href="#"></a>
</li>
</ul>
<hr>
<a data-bind="text:'hi',click: $root.nameSelected('hi')" href="#"></a>
Java:
package dew.demo.namesmodel;
import net.java.html.json.Model;
import net.java.html.json.Property;
import net.java.html.json.Function;
@Model(className="Names", properties={
@Property(name = "selectedName", type=String.class),
@Property(name = "names", type=String.class, array = true)
})
class NamesModel {
@Function static void nameSelected(Names myModel, String data) {
myModel.setSelectedName(data);
}
static {
Names pageModel = new Names(
"---", "Jarda", "Pepa", "Honza", "Jirka", "Tomáš"
);
pageModel.applyBindings();
}
}
您可以在 fiddle 上查看示例 运行。
该示例似乎仅在 DEW 中失败。我创建了一个普通的 DukeScript 项目,它工作正常,在浏览器中 运行 时也是如此。所以我认为这只是 DEW 中的一个错误。
可以通过使用 with 绑定来解决该问题:
<div data-bind="with: 'hi'">
<a data-bind="text: $data,click: $root.nameSelected" href="#"></a>
</div>
如您的 updated DEW 所示。
如何发送任何参数来更改模型中的某些内容?
我尝试使用 setter 但失败了,当尝试从视图中进行操作时我遇到了一个奇怪的行为。
这就是我现在的情况。
HTML:
Selected name: <span data-bind="text: selectedName"></span>
<ul data-bind="foreach: names">
<li>
<a data-bind="text: $data, click: $root.nameSelected" href="#"></a>
</li>
</ul>
<hr>
<a data-bind="text:'hi',click: $root.nameSelected('hi')" href="#"></a>
Java:
package dew.demo.namesmodel;
import net.java.html.json.Model;
import net.java.html.json.Property;
import net.java.html.json.Function;
@Model(className="Names", properties={
@Property(name = "selectedName", type=String.class),
@Property(name = "names", type=String.class, array = true)
})
class NamesModel {
@Function static void nameSelected(Names myModel, String data) {
myModel.setSelectedName(data);
}
static {
Names pageModel = new Names(
"---", "Jarda", "Pepa", "Honza", "Jirka", "Tomáš"
);
pageModel.applyBindings();
}
}
您可以在 fiddle 上查看示例 运行。
该示例似乎仅在 DEW 中失败。我创建了一个普通的 DukeScript 项目,它工作正常,在浏览器中 运行 时也是如此。所以我认为这只是 DEW 中的一个错误。
可以通过使用 with 绑定来解决该问题:
<div data-bind="with: 'hi'">
<a data-bind="text: $data,click: $root.nameSelected" href="#"></a>
</div>
如您的 updated DEW 所示。