Javascript 无法使用芯片值更新控制器中的模型
看起来这里发生了一些简单的事情,但我仍然不知道学习angularjs有什么不对 我正在使用快速回复选项进行网络聊天,模型可以通过输入或点击快速回复芯片进行更新。芯片的价值应该分配给模型,但这就产生了一个问题 控制器代码输入和快速回复功能相同Javascript 无法使用芯片值更新控制器中的模型,javascript,angularjs,Javascript,Angularjs,看起来这里发生了一些简单的事情,但我仍然不知道学习angularjs有什么不对 我正在使用快速回复选项进行网络聊天,模型可以通过输入或点击快速回复芯片进行更新。芯片的价值应该分配给模型,但这就产生了一个问题 控制器代码输入和快速回复功能相同 // sending message $scope.sendMessage = function (chip) { if(chip != ''){ console.l
// 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相同,感谢您的帮助,它通过快速回复解决了问题,但必须向提交输入字段后运行的函数添加额外的检查和参数。尽管我仍然不知道问题出在哪里,以及为什么你建议的方式对这两种方式都不起作用,但快速回复单击并输入提交。