将 AngularJS 与 NodeJS 和 socket.io 一起使用时,我遇到了引导模式窗口的问题。我一直在谷歌搜索,似乎是有解决方案的问题,但由于某种原因,当我尝试与 Socket.io 一起实现它时它不起作用。我在两个不同的地方使用了模式——当我点击一个静态 div 时(完美运行),当我收到来自 webSockets 的消息时(只打开一次,然后什么也没有)。我想我的 JS 代码可能有问题,因为当我单击静态 div 时的模式工作正常,但我不知道。
我有一个地址,当访问此链接时,我正在通过 WebSockets 向客户端发送一些数据。客户端事件如下所示:
socket.on('patient', function(data){
modalInstance = $modal.open({
templateUrl: 'templates/patient.js',
controller: 'patientModalCtrl',
resolve: {
details: function(){return data;}
}
});
});
和:
socket.on('alergy',function(data){
modalInstance = $modal.open({
templateUrl: "templates/alergy.js",
controller: 'alergyModalCtrl'
});
});
这两个都只工作一次,然后模态窗口停止出现。有趣的是,当我发出“过敏”,然后又是“病人”,我得到一个“过敏”窗口,然后是病人窗口,它下面的第二个“过敏”窗口。
发射看起来像这样:
app.get('/api/socket/hash/:hash', function(req, res){
var hash = req.params.hash;
//allergy
if(hash === "3fDecCD"){
connected_sockets[0].emit('alergy', {alergy: true});
res.json({status: true});
}
//patient detail
else if(hash === "Vc43Sf"){
connected_sockets[0].emit('patient', {name: 'Jan', surname: 'Bjornstad'});
res.json({status: true});
}
else{
res.json({status: false});
}
});
我的模板如下所示:
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header"></div>
<div class="modal-body" style="background-color: #FFD1D1;">
<h1 style="text-align: center; color: red;">Allergy!</h1>
<h2 style="text-align: center; color: red;">The patient is allergic to opium!</h2>
</div>
<div class="modal-footer">
<button class="btn btn-warning" ng-click="cancel()">Close</button>
</div>
</div>
</div>
我正在使用 AngularJS 1.0.7,引导 CSS 2.3.1