Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/395.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 无法使用芯片值更新控制器中的模型_Javascript_Angularjs - Fatal编程技术网

Javascript 无法使用芯片值更新控制器中的模型

Javascript 无法使用芯片值更新控制器中的模型,javascript,angularjs,Javascript,Angularjs,看起来这里发生了一些简单的事情,但我仍然不知道学习angularjs有什么不对 我正在使用快速回复选项进行网络聊天,模型可以通过输入或点击快速回复芯片进行更新。芯片的价值应该分配给模型,但这就产生了一个问题 控制器代码输入和快速回复功能相同 // sending message $scope.sendMessage = function (chip) { if(chip != ''){ console.l

看起来这里发生了一些简单的事情,但我仍然不知道学习angularjs有什么不对

我正在使用快速回复选项进行网络聊天,模型可以通过输入或点击快速回复芯片进行更新。芯片的价值应该分配给模型,但这就产生了一个问题

控制器代码输入和快速回复功能相同

// sending message
              $scope.sendMessage = function (chip) {
               if(chip != ''){
                 console.log(chip) // getting the chip value correctly
                  $scope.message.text = chip;  // looks like nothing happens here
                    console.log( $scope.message.text)  // undefined 
                      $scope.message.myEntry = true;
                        $scope.messages.push($scope.message);

                        socket.emit('chat message', {
                                myEntry:  $scope.message.myEntry,
                                text: $scope.message.text
                            }
                        );
            }else{
                $scope.message.myEntry = true;
                  $scope.messages.push($scope.message);

                        socket.emit('chat message', {
                                myEntry:  $scope.message.myEntry,
                                text: $scope.message.text
                            }
                        );
                  }
                    // clear message box
                  $scope.message = '';
            };
以及视图的代码

<li class="ChatLog__entry item"
                ng-class="{ChatLog__entry_mine: message.myEntry === true}"
                ng-repeat="message in messages track by $index">
                <img class="ChatLog__avatar" src="//placekitten.com/g/50/50" />
                <p ng-if="message.text" class="ChatLog__message" ng-class="{clientMessage: message.myEntry === true}">{{message.text}}

                   <time class="ChatLog__timestamp"></time>
                </p>
               <md-button ng-if="message.button" class="md-raised md-default" ng-click="gotoState(message.button.state)">{{message.button.value}}</md-button>
                <md-chips class="quick_replies" ng-if="message.quick_replies" ng-model="message.quick_replies"  
                readonly="true">
                <md-chip-template  ng-model="message.text" readonly="true" md-removable="false" 
                ng-click="sendMessage($chip)">{{$chip}}</md-chip-template>
                </md-chips>
            </li>

谢谢。

$scope.message=;这将再次将对象转换为字符串。 将此行更改为

$scope.message = {};

您在哪里声明了$scope.message?像这样声明$scope.message={}try@Dinesh嗨,我在我的控制器中声明了它。$scope.message=;这将再次将对象转换为字符串。与$scope.message={}@Dinesh相同,感谢您的帮助,它通过快速回复解决了问题,但必须向提交输入字段后运行的函数添加额外的检查和参数。尽管我仍然不知道问题出在哪里,以及为什么你建议的方式对这两种方式都不起作用,但快速回复单击并输入提交。