【问题标题】:$scope not updating$scope 没有更新
【发布时间】: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


    【解决方案1】:

    我通过创建$scope.newMessageContent 的父级解决了这个问题,我已将其更改为 = $scope.message =[]; & $scope.message.newMessageContent=""; 现在可以正常工作了。

    【讨论】:

      猜你喜欢
      • 2015-12-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-11-17
      • 2017-09-24
      • 1970-01-01
      相关资源
      最近更新 更多