发送常量参数以更改dukescript中的模型字段

时间:2015-12-12 13:56:53

标签: 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>

爪哇:

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上看到正在运行的示例。

2 个答案:

答案 0 :(得分:2)

可以使用 with 绑定来解决问题:

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

正如您的updated DEW所示。

答案 1 :(得分:1)

这个例子似乎只在DEW中失败了。我创建了一个普通的DukeScript项目,它在浏览器中运行时工作正常。所以我认为这只是DEW中的一个错误。