Javascript 如何在其他视图中发生更改时更新视图
我有两个仪表板,一个用于用户(printshop),另一个用于管理员(QA),我希望当管理员更改管理仪表板中订单的状态时,用户仪表板会自动更新,而不必每次发生更改时都刷新页面 这是 QA仪表板中的myService.jsJavascript 如何在其他视图中发生更改时更新视图,javascript,angularjs,Javascript,Angularjs,我有两个仪表板,一个用于用户(printshop),另一个用于管理员(QA),我希望当管理员更改管理仪表板中订单的状态时,用户仪表板会自动更新,而不必每次发生更改时都刷新页面 这是 QA仪表板中的myService.js function addOrederToPrintShop(printShopId, orderId, index, key) { return new Promise(function(resolve, reject) { service.db.collection
function addOrederToPrintShop(printShopId, orderId, index, key) {
return new Promise(function(resolve, reject) {
service.db.collection('orders').doc(orderId).set({
printShopStatus: 'Pending'
}, {
merge: true
}).then(function(data) {
service.db.collection('print-shops-
orders ').doc(printShopId).collection(orderId).doc(key).get()
.then(function(doc) {
if (!doc.exists) {
////if print shop not added
service.db.collection('print-shops-
orders ').doc(printShopId).collection(orderId).doc(key).set({key:
key
})
.then(function() {
addOredersToPrintShopArray(printShopId, orderId);
service.db.collection('orders').doc(orderId).get()
.then(function(order) {
if (order.exists) {
var fetchedOrder = order.data();
fetchedOrder.cart[index].printShopStatus = 'Pending';
service.db.collection('orders').doc(orderId).set({
cart: fetchedOrder.cart
}, {
merge: true
}).then(function() {
resolve('Document successfully added!');
});
}
});
})
.catch(function(error) {
reject("Error added document: ", error);
});
} else {
resolve('Document NOT!');
}
});
});
});
}可能是
SubjectBehavior
为您做点工作,但我不确定AngularJS您需要WebSocket之类的东西,或者一个连续的AJAX请求系统,当数据在服务器端更新时,它会更新数据。您是说在不同的机器上运行两个独立的客户端实例,对吗,一个管理员客户端和一个单独的用户客户端?是的,但它们是连接的,就像管理员更改状态时,它将在用户仪表板中更改一样,反之亦然。我唯一的问题是我希望更新的更改显示出来,而不必刷新页面。伙计们,我在我的问题中发布了一段代码,以便让您更清楚,请检查一下,谢谢。