Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/haskell/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在其他视图中发生更改时更新视图_Javascript_Angularjs - Fatal编程技术网

Javascript 如何在其他视图中发生更改时更新视图

Javascript 如何在其他视图中发生更改时更新视图,javascript,angularjs,Javascript,Angularjs,我有两个仪表板,一个用于用户(printshop),另一个用于管理员(QA),我希望当管理员更改管理仪表板中订单的状态时,用户仪表板会自动更新,而不必每次发生更改时都刷新页面 这是 QA仪表板中的myService.js function addOrederToPrintShop(printShopId, orderId, index, key) { return new Promise(function(resolve, reject) { service.db.collection

我有两个仪表板,一个用于用户(printshop),另一个用于管理员(QA),我希望当管理员更改管理仪表板中订单的状态时,用户仪表板会自动更新,而不必每次发生更改时都刷新页面

这是 QA仪表板中的myService.js

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请求系统,当数据在服务器端更新时,它会更新数据。您是说在不同的机器上运行两个独立的客户端实例,对吗,一个管理员客户端和一个单独的用户客户端?是的,但它们是连接的,就像管理员更改状态时,它将在用户仪表板中更改一样,反之亦然。我唯一的问题是我希望更新的更改显示出来,而不必刷新页面。伙计们,我在我的问题中发布了一段代码,以便让您更清楚,请检查一下,谢谢。