我正在使用mssql> node.js>套接字。angular-socket-io .
我的问题是,我第一次访问的状态,我有数据被显示,或在刷新,数据显示没有问题。但是,当改变状态并返回时,数据消失。
使用mssql from npm + express我发出这样的数据
io.sockets.on('connection', function (socket) {
// Run db query on inital app start
sql.connect(config, function(err) {
if (err) {
console.log('There was an error connectiong to sql:');
console.log(err);
} else {
var request = new sql.Request();
request.query('SELECT * from a.dbo.b', function(err, recordset) {
if (err) {
console.log('There was an error with the query:' + err);
}
socket.emit('data', recordset);
});
}
});
});
我有一个像这样的工厂
.factory('socket', function (socketFactory) {
var socket = io.connect(window.location.hostname);
return socket;
})
在控制器中我有这个
socket.on('data', function (data) {
// WHOLE bunch of logic manipulating the data.....
$scope.ctrlData = finalRecordObj;
$scope.$digest();
);
状态然后循环出$scope的数据。ctrlData使用ng-repeat
在刷新或第一次查看状态时,数据正常....在我去了另一个州回来之后,它就消失了!任何想法都将非常感激。
你应该保持你的数据在服务,以防止它消失,现在发生的事情是,在刷新页面控制器和服务被启动(服务是一个单例),然后它返回数据,但当你改变状态控制器刷新,但不是服务,所以数据从控制器丢失和服务不会提供新的,因为它已经做了,希望这是有意义的