我尝试启用/禁用输入字段。
app.controller("ContactController", function ($scope, $http) {
$scope.EmailDetails = {
Phone: null,
Email: null,
Name: null,
Subject: null,
Body: null
};
$scope.EmailDetailsArr = [
$scope.Phone,
$scope.Email,
$scope.Name,
$scope.Subject,
$scope.Body
];
$scope.EmailDetails = {
Phone: $scope.Phone,
Email: $scope.Email,
Name: $scope.Name,
Subject: $scope.Subject,
Body: $scope.Body
};
$scope.CreateEmail = function () {
console.log($scope.EmailDetails);
console.log(JSON.stringify($scope.EmailDetails));
$http({
method: 'POST',
url: '/ContactUs',
data: JSON.stringify($scope.EmailDetail)
});
}
我的淘汰赛
<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());
socket.on(
更新了更新,为什么self.messages(
没有? (要清楚变量JS端是否已更新,但数据绑定不是。
答案 0 :(得分:2)
这应该可以解决问题:
self.chatDisabled(last.enforce || false);
您为属性分配了一个新值,而不是更新可观察值。