在Knockout JS中向下钻取

时间:2012-07-31 01:19:03

标签: knockout.js knockout-2.0

我正在构建一个Web应用程序,我希望将UI转换为使用Knockout JS。我是Knockout的总菜鸟,所以请善待!

通常我会加载一个员工列表(使用PHP),然后如果选择了一个员工,我会找到该员工的ID使用JQuery,然后make和AJAX调用我的后端,填写结果框并将其向下滑动

有没有办法在Knockout中复制这种行为?

1 个答案:

答案 0 :(得分:1)

在knockout / jquery中处理ajax钻取的方法是使用挖空点击处理程序。这允许您然后拉取任何属性或项本身,然后在jquery中处理ajax。我的代码示例如下。

在html文件中:

...
<div class="empListName" data-bind="text: fullName(), click: $root.showEmp">
</div>
....

在js文件中:

function MainScreenViewModel() {
  // Data
  var self = this;
  self.employees = ko.observableArray([]);
  ...

  // Functions
  self.showEmp = function(data, event){
    var id = data.empId();
    var checkA = $(event.target).parent().find('.empListNameX').first();
    var expand = $(event.target).parent().next();
    if (checkA.hasClass('open')){ //Close it
        checkA.removeClass('open').addClass('closed');
        expand.slideUp();
    }else{
        $.get('/employee/getempinfo/'+id, function(info){
            checkA.addClass('open').removeClass('closed');
            expand.html(info).slideDown();
        })
    }
  }
  ...
}