다음을 사용 가능하게하는 것은 내 HTML입니다 두 개의 계산 된 관찰 값을 사용하여 비활성화 된 버튼을 활성화합니다. 2 명의 comuputed observable 중 하나가 작동하지 않습니다.변경 부트 스트랩 버튼 클래스는 knockout.js
그러나 CSS 바인딩과 관련된 계산 된 관찰 가능 항목을 제거하면 텍스트 바인딩이 완벽하게 작동하는 것 같습니다.
Knockout.JS 코드에 두 개의 계산 된 변수를 추가 할 수없는 이유에 대한 도움말은 무엇입니까?
다음은 동일을 달성하기 위해 전체 자바 스크립트 코드 :
$(document).ready(function(){
function appModel(session_info){
var temp = $.parseJSON(session_info);
this.userName = ko.observable(temp[0].user_name);
this.firstName = ko.observable(temp[0].first_name);
this.lastName = ko.observable(temp[0].last_name);
this.hotelName = ko.observable("");
this.fullName = ko.computed(function(){
return this.firstName() + " " + this.lastName();
}, this);
this.enablebtn = ko.computed(function(){
return this.hotelName().length() > 0 ? "enabled":"disabled";
}, this);
this.sout = function(){
$.ajax({
url:"../api/sessions.php",
type:"get",
data: {rqtype: '0'},
cache:false,
success:function(session_info){
var data = $.parseJSON(session_info);
if (data.status == 'Invalid_id'){
window.location.replace('../files/main.html');
}
}
});
}
};
$.ajax({
url:"../api/sessions.php",
type:"get",
data: {rqtype: '1'},
cache:false,
success:function(session_info){
var data = $.parseJSON(session_info);
if (data.status == 'Invalid_id'){
window.location.replace('../files/main.html');
} else {
ko.applyBindings(new appModel(session_info));
}
}
});
$(function(){
$("#hotels").autocomplete({
source:'../api/hotel_list_typehead.php',
minLength:2
});
});
});
그냥 정보 : 샘플 JSON
(Session_info:{"user_name":"[email protected]","first_name":"saurabh","last_name":"pradhan"})
당신이 자바 스크립트 콘솔, 오류가 귀하의 브라우저를 확인해 봤어? – nemesv