0
입력 필드를 활성화/비활성화하려고합니다.Knockout.js 부울이 업데이트되지 않습니다.
<input data-bind="disable: chatDisabled" id="send-message" type="textarea" class="input-area" value="">
내가 다른 부분 배열이 업데이트 될 때 화면 채우기에 메시지 목록을 가지는 등의 작업을 진행하게 관리했습니다
function MessagesViewModel() {
var self = this;
var socket = io.connect('http://127.0.0.1:4000');
self.messages = ko.observableArray([]);
self.chatSend = ko.observable();
self.questionChoice = ko.observable();
self.chatDisabled = ko.observable(false);
socket.on('receiveMessages', function(data) {
self.messages(data.messages);
var last = data.messages[data.messages.length-1];
self.chatDisabled = last.enforce || false;
scrollToBottom();
});
}
ko.applyBindings(new MessagesViewModel());
내 knockoutJS. 그러나 내 인생에 대한 입력을 변경할 때 활성화/비활성화 사이에서 전환 할 때 socket.on(
self.messages(
업데이트가 수정되었으므로 self.chatDisabled
이 아닌 이유는 무엇입니까? (그것을 데이터 바인딩이 아닌 변수 JS 측 그러나 업데이트됩니다 명확하게하려면
'self.chatDisabled (last.enforce || false;)'? – peinearydevelopment
@peinearydevelopment가 정확합니다. 관찰 가능 항목의 내용을 업데이트하는 대신 chatDisabled 값을 last.enforce || false와 같게 변경합니다. – Budhead2004
AH 나는 바보 야, 고마워/facepalm – jackdh