【发布时间】:2021-12-05 07:44:19
【问题描述】:
大家好,我正在开发一个短信系统,我需要使用text area 作为输入字段,并使用一些drop down,这些drop downs 就像用户可以选择、编辑和发送的预定义模板。
我在手动输入消息和发送消息时遇到了一些问题,我无法再使用模板,我不知道为什么 $scope.var 没有更新。请帮忙
HTML -
<textarea id="typeMessageBox" placeholder="Write here and hit enter to send..." ng-keypress="getkeys($event)" rows="4" class="form-control-lg form-control" ng-model="newMessageContent">
</textarea>
<div class="input-group-prepend">
<button type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" class="dropdown-toggle btn btn-info" ng-click="setSelectedTemplate('Clear')">SMS<br/>Template</button>
<div tabindex="-1" role="menu" aria-hidden="true" class="dropdown-menu">
<button type="button" tabindex="0" class="dropdown-item" ng-click="setSelectedTemplate('First')">First Template</button>
<button type="button" tabindex="0" class="dropdown-item" ng-click="setSelectedTemplate('Second')">Second Template</button>
</div>
</div>
控制器 -
$scope.setSelectedTemplate = (type) => {
switch (type) {
case "First":
$scope.newMessageContent = "First template";
break;
case "Second":
$scope.newMessageContent = "Second template";
break;
case "Clear":
$scope.newMessageContent = "";
break;
}
}
$scope.getkeys = function (event) {
if(event.keyCode == 13) {
$scope.sendMessage($("#typeMessageBox").val());
}
}
发送消息功能:-
$scope.sendMessage = function (message){
if(message=='') return;
if($scope.sendingMessage==true) return;
$scope.sendingMessage = true;
toastr["info"]("Sending message..", "Please wait..!");
let data = {
"sessionId" : $scope.currentSessionID,
"fromSignalWirePhoneNo": $scope.selectedNumber,
"messageBody": message,
"toPhoneNo": "+"+"<?=$patientNumber?>".trim()
}
var messageSettings = {
"url": "xxxxx",
"method": "POST",
"timeout": 0,
"headers": {
"Authorization": "Bearer xxxx",
"Content-Type" : "application/json"
},
"data": JSON.stringify(data)
};
$.ajax(messageSettings).done(function (response) {
toastr["success"]("SMS sent successfully.", "Sent!")
$scope.newMessageContent="";
$('#typeMessageBox').val('')
$scope.sendingMessage = false;
$scope.getAllSessions(false);
$scope.getMessageLogs($scope.currentSessionID);
$scope.$apply()
}).fail(function (err) {
toastr["error"]("SMS sending failed.", "Failed!");
$scope.sendingMessage = false;
$scope.$apply();
});
}
问题 - 如果我使用模板并发送它们,一切正常,但只要我在文本区域内手动输入消息,它就不会在文本区域内填充模板......我哪里出错了请帮忙。
【问题讨论】:
标签: javascript jquery angularjs