Javascript 在angular js中绑定数据一次

Javascript 在angular js中绑定数据一次,javascript,angularjs,data-binding,2-way-object-databinding,Javascript,Angularjs,Data Binding,2 Way Object Databinding,对于我的例子,我有一个$窗口来显示一些数据。每个$window都是独立的,我可以在某个时间有许多$window,但数据不相同,问题是当我打开第一个窗口时所有细节都正常,但一旦我打开下一个窗口并刷新第一个窗口,它将取第二个窗口的值 下面是打开窗口的JSCockpitController: (function () { angular .module("cockpit", ['mm.foundation', 'security', 'message', 'isteven-mu

对于我的例子,我有一个$窗口来显示一些数据。每个$window都是独立的,我可以在某个时间有许多$window,但数据不相同,问题是当我打开第一个窗口时所有细节都正常,但一旦我打开下一个窗口并刷新第一个窗口,它将取第二个窗口的值

下面是打开窗口的JSCockpitController

(function () {
    angular
        .module("cockpit", ['mm.foundation', 'security', 'message', 'isteven-multi-select', 'idCardSupplierWarn', 'idCardPartWarn', 'idCardSupplierInf'])
        .controller('cockpitController', ['$scope', '$translate', 'serviceCockpit', 'idCardSupplierWarnService', '$window', function ($scope, $translate, serviceCockpit, idCardSupplierWarnService, $window) {

            var urlSuppliersWarning = 'rest/suppliers/warnings';
            var urlSuppliersWarningByRefForDetails = 'rest/suppliers/warnings/supplier/ref/search';


            var self = this;

            serviceCockpit.loadData([urlSuppliersWarning]).then(function (results) {
                self.suppliersWarning = results[0].data;
            });

            this.change = function () {

                if (this.openWindow) {
                    this.openWindow = false;
                }
                else {
                    this.openWindow = true;
                }

            };


            $scope.openNewWindowRef = function (url, params) {
                console.log(params);
                idCardSupplierWarnService.setParam(params);
                console.log(idCardSupplierWarnService);
                var win = $window.open(url, '_blank', 'left=0, top=0, width=1100,height=600,scrollbars=yes, resizable=1');
                win.params = idCardSupplierWarnService.getParams();
            };

            $scope.openNewWindowSupp = function (url, params) {
                idCardSupplierWarnService.setParam(params);
                console.log(idCardSupplierWarnService);
                var win = $window.open(url, '_blank', 'left=0, top=0, width=1100,height=600,scrollbars=yes, resizable=1');
                win.params = idCardSupplierWarnService.getParams();
            };

            this.process = function (items) {

                if (items.origin == 'reference' || items.origin == 'suppliers' || items.origin == 'supplierAccounts' || items.origin == 'supplierAddressCodes' || items.origin == 'reset') {

                    serviceCockpit.loadData([urlSuppliersWarningByRefForDetails], items).then(function (results) {
                        self.suppliersWarningDetails = results[0].data;
                    });
                }

                serviceCockpit.loadData([urlSuppliersWarning], items).then(function (results) {
                    self.suppliersWarning = results[0].data;
                });
            }

        }]);
})();
窗口控制器

(function () {
    angular
        .module("idCardSupplierWarn", ['mm.foundation', 'security', 'message', "isteven-multi-select", 'cockpit'])
        .controller('idCardSupplierWarnController', ['$translate', '$scope', 'serviceCockpit', 'idCardSupplierWarnService', '$window', function ($translate, $scope, serviceCockpit, idCardSupplierWarnService, $window) {


            var urlSupplierWarningByRefDetail = 'rest/suppliers/warnings/supplier/details';

            var self = this;
            console.log(self.params);
            if (typeof self.params == 'undefined') {
                var params = $window.parent.params;
                self.params = params;
                serviceCockpit.loadData([urlSupplierWarningByRefDetail], params).then(function (results) {
                    self.suppliersWarningsList = results[0].data;
                });

            }


        }]);
})();
<div class="main-content" ng-controller="idCardSupplierWarnController as cpt">



    <section class="top-bar" id="main-menu">
        <div class="menu-text"><span class="txt-white"> <center><h5 style="color #FFCC33">{{ 'ID_CARD_SUPPLIER_HOME' | translate }}</h5></center></span>
        </div>
        <div>
            <center>
                <ul class="menu">
                    <ul class="menu">
                        <li ng-class="getClass('/idCardSupplierInf/id/code')"><a href="#/idCardSupplierInf/id/code">{{
                            'ID_CARD_SUPPLIER_HOME_INF' | translate }}</a></li>
                        <li ng-class="getClass('/idCardSupplierGraph')"><a href="#/idCardSupplierGraph" >{{ 'ID_CARD_SUPPLIER_HOME_GRAPH' | translate }}</a></li>
                        <li ng-class="getClass('/idCardSupplierWarn')"><a  href="#/idCardSupplierWarn" >{{ 'ID_CARD_SUPPLIER_HOME_WARN' | translate }}</a></li>

                    </ul>
                </ul>
            </center>
        </div>
    </section>

    <br>
    <div class="row">
        <div class="small-12 large-12 columns maintitle-id">
            <h1>{{ 'ID_CARD_PART_WARN_TITLE_REF' | translate }} {{cpt.params.idSupNum}}.{{cpt.params.codeSuppNum}}</h1>
        </div>
    </div>
    <br/>


    <div class="row">
        <div class="small-12 medium-12 large-12 text-center columns">
            <div class="callout medium shadowd">

                <table>
                    <thead>
                    <tr>
                        <th>{{ 'ID_CARD_SUPPLIER_WARN_TAB_REF' | translate }}</th>
                        <th>{{ 'ID_CARD_SUPPLIER_WARN_TAB_DES' | translate }}</th>
                        <th>{{ 'ID_CARD_SUPPLIER_WARN_TAB_GR' | translate }}</th>
                        <th>{{ 'ID_CARD_SUPPLIER_HOME_TAB1_CODE' | translate }}</th>
                        <th>{{ 'ID_CARD_SUPPLIER_WARN_TAB_STOCK' | translate }}</th>
                        <th>{{ 'ID_CARD_SUPPLIER_WARN_TAB_CO' | translate }}</th>
                        <th>{{ 'ID_CARD_SUPPLIER_WARN_TAB_RE' | translate }}</th>
                        <th>{{ 'ID_CARD_SUPPLIER_WARN_TAB_LATE' | translate }}</th>
                        <th>{{ 'ID_CARD_SUPPLIER_WARN_TAB_OLD' | translate }}</th>
                        <th>{{ 'ID_CARD_SUPPLIER_WARN_TAB_BO' | translate }}</th>
                        <th>{{ 'ID_CARD_SUPPLIER_WARN_TAB_VOR' | translate }}</th>
                        <th>{{ 'ID_CARD_SUPPLIER_WARN_TAB_QTY1' | translate }}</th>
                        <th>{{ 'ID_CARD_SUPPLIER_WARN_TAB_DELAY1' | translate }}</th>
                        <th>{{ 'ID_CARD_SUPPLIER_WARN_TAB_CAUSE' | translate }}</th>
                        <th>{{ 'ID_CARD_SUPPLIER_WARN_TAB_WARN' | translate }}</th>
                        <th>{{ 'ID_CARD_SUPPLIER_WARN_TAB_ACTION' | translate }}</th>

                    </tr>
                    </thead>
                    <tbody>
                    <tr ng-repeat="sup in cpt.suppliersWarningsList">

                        <td><a>{{sup.designRefPart}}</a></td>
                        <td>{{sup.labelRefPart}}</td>
                        <td>{{sup.grpes}}</td>
                        <td>{{sup.idSuppNumber}}.{{sup.codeSupp}}</td>
                        <td>{{sup.stock}}</td>
                        <td>{{sup.couvrage}}</td>
                        <td>{{sup.remaingToDeliver}}</td>
                        <td>{{sup.delaySupp}}</td>
                        <td>{{sup.durationDelay}}</td>
                        <td>{{sup.bo}}</td>
                        <td>{{sup.vor}}</td>
                        <td>{{sup.quantity}}</td>
                        <td>{{sup.delaySupp}}</td>
                        <td>{{sup.alfCause}}</td>
                        <td>{{sup.alertMsg}}</td>
                        <td>{{sup.actionMsg}}</td>

                    </tr>
                    </tbody>
                </table>
            </div>
        </div>

    </div>
















</div>
窗口HTML:

(function () {
    angular
        .module("idCardSupplierWarn", ['mm.foundation', 'security', 'message', "isteven-multi-select", 'cockpit'])
        .controller('idCardSupplierWarnController', ['$translate', '$scope', 'serviceCockpit', 'idCardSupplierWarnService', '$window', function ($translate, $scope, serviceCockpit, idCardSupplierWarnService, $window) {


            var urlSupplierWarningByRefDetail = 'rest/suppliers/warnings/supplier/details';

            var self = this;
            console.log(self.params);
            if (typeof self.params == 'undefined') {
                var params = $window.parent.params;
                self.params = params;
                serviceCockpit.loadData([urlSupplierWarningByRefDetail], params).then(function (results) {
                    self.suppliersWarningsList = results[0].data;
                });

            }


        }]);
})();
<div class="main-content" ng-controller="idCardSupplierWarnController as cpt">



    <section class="top-bar" id="main-menu">
        <div class="menu-text"><span class="txt-white"> <center><h5 style="color #FFCC33">{{ 'ID_CARD_SUPPLIER_HOME' | translate }}</h5></center></span>
        </div>
        <div>
            <center>
                <ul class="menu">
                    <ul class="menu">
                        <li ng-class="getClass('/idCardSupplierInf/id/code')"><a href="#/idCardSupplierInf/id/code">{{
                            'ID_CARD_SUPPLIER_HOME_INF' | translate }}</a></li>
                        <li ng-class="getClass('/idCardSupplierGraph')"><a href="#/idCardSupplierGraph" >{{ 'ID_CARD_SUPPLIER_HOME_GRAPH' | translate }}</a></li>
                        <li ng-class="getClass('/idCardSupplierWarn')"><a  href="#/idCardSupplierWarn" >{{ 'ID_CARD_SUPPLIER_HOME_WARN' | translate }}</a></li>

                    </ul>
                </ul>
            </center>
        </div>
    </section>

    <br>
    <div class="row">
        <div class="small-12 large-12 columns maintitle-id">
            <h1>{{ 'ID_CARD_PART_WARN_TITLE_REF' | translate }} {{cpt.params.idSupNum}}.{{cpt.params.codeSuppNum}}</h1>
        </div>
    </div>
    <br/>


    <div class="row">
        <div class="small-12 medium-12 large-12 text-center columns">
            <div class="callout medium shadowd">

                <table>
                    <thead>
                    <tr>
                        <th>{{ 'ID_CARD_SUPPLIER_WARN_TAB_REF' | translate }}</th>
                        <th>{{ 'ID_CARD_SUPPLIER_WARN_TAB_DES' | translate }}</th>
                        <th>{{ 'ID_CARD_SUPPLIER_WARN_TAB_GR' | translate }}</th>
                        <th>{{ 'ID_CARD_SUPPLIER_HOME_TAB1_CODE' | translate }}</th>
                        <th>{{ 'ID_CARD_SUPPLIER_WARN_TAB_STOCK' | translate }}</th>
                        <th>{{ 'ID_CARD_SUPPLIER_WARN_TAB_CO' | translate }}</th>
                        <th>{{ 'ID_CARD_SUPPLIER_WARN_TAB_RE' | translate }}</th>
                        <th>{{ 'ID_CARD_SUPPLIER_WARN_TAB_LATE' | translate }}</th>
                        <th>{{ 'ID_CARD_SUPPLIER_WARN_TAB_OLD' | translate }}</th>
                        <th>{{ 'ID_CARD_SUPPLIER_WARN_TAB_BO' | translate }}</th>
                        <th>{{ 'ID_CARD_SUPPLIER_WARN_TAB_VOR' | translate }}</th>
                        <th>{{ 'ID_CARD_SUPPLIER_WARN_TAB_QTY1' | translate }}</th>
                        <th>{{ 'ID_CARD_SUPPLIER_WARN_TAB_DELAY1' | translate }}</th>
                        <th>{{ 'ID_CARD_SUPPLIER_WARN_TAB_CAUSE' | translate }}</th>
                        <th>{{ 'ID_CARD_SUPPLIER_WARN_TAB_WARN' | translate }}</th>
                        <th>{{ 'ID_CARD_SUPPLIER_WARN_TAB_ACTION' | translate }}</th>

                    </tr>
                    </thead>
                    <tbody>
                    <tr ng-repeat="sup in cpt.suppliersWarningsList">

                        <td><a>{{sup.designRefPart}}</a></td>
                        <td>{{sup.labelRefPart}}</td>
                        <td>{{sup.grpes}}</td>
                        <td>{{sup.idSuppNumber}}.{{sup.codeSupp}}</td>
                        <td>{{sup.stock}}</td>
                        <td>{{sup.couvrage}}</td>
                        <td>{{sup.remaingToDeliver}}</td>
                        <td>{{sup.delaySupp}}</td>
                        <td>{{sup.durationDelay}}</td>
                        <td>{{sup.bo}}</td>
                        <td>{{sup.vor}}</td>
                        <td>{{sup.quantity}}</td>
                        <td>{{sup.delaySupp}}</td>
                        <td>{{sup.alfCause}}</td>
                        <td>{{sup.alertMsg}}</td>
                        <td>{{sup.actionMsg}}</td>

                    </tr>
                    </tbody>
                </table>
            </div>
        </div>

    </div>
















</div>

{{‘身份证{供应商{家}翻译}

{{ID_CARD_PART_WARN_TITLE_REF|translate}{{cpt.params.idSupNum}}.{{cpt.params.codeSuppNum}
{{'ID_卡_供应商_警告_标签_参考|翻译} {{‘身份证{供应商{警告}标签{翻译} {{‘ID_卡_供应商_警告_标签_GR’|翻译} {{‘身份证(供应商)家庭(表1)代码|翻译} {{“身份证”{供应商{警告}标签{库存{翻译} {{‘身份证{供应商{警告}标签{公司}翻译} {{‘身份证{供应商{警告}标签{翻译} {{“身份证供应商警告标签晚了”{124;翻译} {{{‘身份证{供应商{警告}标签{旧}翻译} {{‘身份证{供应商{警告}标签{翻译} {{‘身份证{供应商{警告}标签{翻译} {{'ID_卡_供应商_警告_标签_QTY1'|翻译} {{'ID_卡_供应商_警告_标签_延迟1'|翻译} {{“身份证”供应商警告标签原因翻译} {{'ID_卡_供应商_警告_标签_警告|翻译} {{'ID_卡_供应商_警告_标签_行动|翻译}} {{sup.designRefPart} {{sup.labelRefPart} {{sup.grpes}} {{sup.idSuppNumber}.{{sup.codeSupp}} {{sup.stock} {{sup.couvrage} {{sup.remaingToDeliver}} {{sup.delaySupp}} {{sup.durationDelay}} {{sup.bo}} {{sup.vor}} {{辅助数量} {{sup.delaySupp}} {{sup.alfCause}} {{sup.alertMsg}} {{sup.actionMsg}}
这是双向数据绑定的功能。使用进行源代码的深度复制。然后该变量/作用域不会更新其父值