【问题标题】:Select a string for a bound string array为绑定的字符串数组选择一个字符串
【发布时间】:2013-07-04 22:13:48
【问题描述】:

我已将一个简单的字符串数组绑定到一个列表。
Knockout 正确显示了这一点。

<input data-bind="value: clicked" />
<ul data-bind="foreach: strArr, click: $root.selectStr">
    <li data-bind="text: $data"></li>
</ul>

当用户单击其中一个列表项时,我想填充与列表项绑定的字符串。然而,我的 click 函数接收到的对象似乎是完整的淘汰模型。

function StringViewModel() {
    var self = this;
    self.strArr = ko.observableArray(["one", "two", "three"]);
    self.clicked = ko.observable();

    self.selectStr = function (str) {
        console.log(str);
        self.clicked(str);
    }
}
ko.applyBindings(new StringViewModel());

这是jsFiddle

如何编写我的selectStr 函数以显示列表项中的文本; [“一”、“二”、“三”]中的任何一个。

这感觉是一个很容易解决的问题,但自从我第一天被淘汰以来,也许我错过了一些基本的东西。

【问题讨论】:

    标签: javascript knockout.js


    【解决方案1】:

    您应该将点击处理程序添加到li 元素而不是ul

    <input data-bind="value: clicked" />
    <ul data-bind="foreach: strArr">
        <li data-bind="text: $data, click: $root.selectStr"></li>
    </ul>
    

    这是工作小提琴:http://jsfiddle.net/BqGrR/1/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-19
      • 1970-01-01
      • 1970-01-01
      • 2020-05-12
      • 1970-01-01
      • 1970-01-01
      • 2014-02-21
      • 1970-01-01
      相关资源
      最近更新 更多