Javascript 如何使用knockout js引用当前元素?

Javascript 如何使用knockout js引用当前元素?,javascript,mvvm,knockout.js,Javascript,Mvvm,Knockout.js,访问存储的“位置”阵列时遇到问题。Locations是一个对象文字,我正在尝试根据我单击的当前元素访问title属性。我有以下代码,但我无法将其发送到console.log。我的猜测是,我对“this”和闭包函数的使用不是很强。希望我解释得足够好,以便有人能解释清楚。非常感谢您的反馈和解释 (旁注:我的项目要求我需要使用淘汰JS框架和MVVM格式) HTML 您需要将单击事件附加到li而不是ul <ul data-bind="foreach:locationsArray">

访问存储的“位置”阵列时遇到问题。Locations是一个对象文字,我正在尝试根据我单击的当前元素访问title属性。我有以下代码,但我无法将其发送到console.log。我的猜测是,我对“this”和闭包函数的使用不是很强。希望我解释得足够好,以便有人能解释清楚。非常感谢您的反馈和解释

(旁注:我的项目要求我需要使用淘汰JS框架和MVVM格式)

  • HTML

    您需要将单击事件附加到
    li
    而不是
    ul

    <ul data-bind="foreach:locationsArray">
      <li><span id="place" data-bind="text:title, click:$parent.goToLocation"></span></li>
    </ul>
    
    这是

    var ViewModel = function() {
      var self = this;
      self.locationsArray = ko.observableArray(locations);
    
      // item will have the data of the clicked li
      self.goToLocation = function(item) {
        console.log(item);
      }
    }
    
    ko.applyBindings(new ViewModel());