我正在构建一个Web应用程序,我希望将UI转换为使用Knockout JS。我是Knockout的总菜鸟,所以请善待!
通常我会加载一个员工列表(使用PHP),然后如果选择了一个员工,我会找到该员工的ID使用JQuery,然后make和AJAX调用我的后端,填写结果框并将其向下滑动
有没有办法在Knockout中复制这种行为?
答案 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();
})
}
}
...
}