Knockoutjs 设置当前项目

Knockoutjs setting current item

本文关键字:项目 设置 Knockoutjs      更新时间:2023-09-26

在此代码中: http://jsfiddle.net/PDwBF/1/
链接到谷歌不起作用。怎么修?

<ul data-bind="foreach: Items">
    <li data-bind="click: $root.SetCurrent">
        <p data-bind="text: id"></p>
        <div>
            <a href="http://google.com" target="_blank">Go to google</a>
        </div>    
    </li>
</ul>    
function ViewModel() 
{ 
  var self = this;
  self.SelectedItem = ko.observable();
  self.Items = ko.observableArray([]);
  self.SetCurrent = function(item) 
  {
      self.SelectedItem(item);
  };
};  
var vm = new ViewModel();
ko.applyBindings(vm); 
vm.Items.push({id: 55});
vm.Items.push({id: 66});
vm.Items.push({id: 77});

一种选择是返回 true;从您的 SetCurrent methood,它将允许默认操作继续,如下所示:http://jsfiddle.net/rniemeyer/PDwBF/3/

感谢rpn https://groups.google.com/group/knockoutjs/browse_thread/thread/6ef1081249377728

如果添加返回 true - 它有效。

例如

function ViewModel() 
{ 
  var self = this;
  self.SelectedItem = ko.observable();
  self.Items = ko.observableArray([]);
  self.SetCurrent = function(item) 
  {
      self.SelectedItem(item);
      return true;
  };
};