我正在使用angularJS和node.js 这里出现了一个问题,那就是' ng-style'三元条件总是导致错误,而它必须是真的。 这是我的代码:
<div class="msg-single"
ng-repeat="message in messages"
ng-style="{'cursor': msessage.toid === socketId ? 'not-allowed':'pointer'}">
{{message.fromid === socketId ? 'You': message.name }} : {{ message.msg }}
</div>
在上面的代码中,ng-style在发送方套接字和接收方套接字(指针)上都是假的。 在下一行中,message.fromid === socketId它工作正常意味着它在同一个socketId时为true,但在发送方正在发送消息的另一个套接字ID中为false。
相关的.js代码是:
socket.on('getMsg', (data) => {
socket.broadcast.to(data.toid).emit('sendMsg',{
msg:data.msg,
name:data.name,
fromid:data.fromid,
toid:data.toid
});
socket.emit('sendMsg',{
msg:data.msg,
name:data.name,
fromid:data.fromid,
toid:data.toid
});
});
socket.on('sendMsg', (data) => {
//console.log('send');
$scope.messages.push(data);
});
你能告诉我可能的原因吗?和解决方案。
答案 0 :(得分:1)
我不知道为什么,但我认为你可以试试这个:
ng-style="{message.toid === socketId} && {'cursor': 'not-allowed'} || {'cursor':'pointer'}"
答案 1 :(得分:0)
我认为这应该适合你:
ng-style="message.toid === socketId ? {'cursor':'not-allowed'} : {'cursor':'pointer'}"
或者:
ng-style="{{message.toid === socketId}} ? {'cursor':'not-allowed'} : {'cursor':'pointer'}"