Javascript 跨指令的两个实例更新范围值

Javascript 跨指令的两个实例更新范围值,javascript,angularjs,angularjs-directive,Javascript,Angularjs,Angularjs Directive,我有一个将作为弹出模式显示的旁白。用户将能够与模式交互,并从两个选项中选择一个。 如果用户选择拒绝提供我只想隐藏弹出模式和覆盖。 我可以隐藏模态-ng秀效果非常好。但是,覆盖(是一个单独的元素,位于代码库中的一个单独部分)不尊重更新的范围值,即使它们使用相同的指令并且该值来自一个单例。如何确保两者同步? 这是模态分析 <aside data-ng-show="!customerRejectedOffer" data-pi-browser-update class="md-moda

我有一个将作为弹出模式显示的旁白。用户将能够与模式交互,并从两个选项中选择一个。 如果用户选择拒绝提供我只想隐藏弹出模式和覆盖。 我可以隐藏模态-ng秀效果非常好。但是,覆盖(是一个单独的元素,位于代码库中的一个单独部分)不尊重更新的范围值,即使它们使用相同的指令并且该值来自一个单例。如何确保两者同步?
这是模态分析

    <aside data-ng-show="!customerRejectedOffer" data-pi-browser-update class="md-modal md-show pi-modal-message modal-effect-2">
<div class="pi-modal-content">
    <h4>Title</h4>
                <div>
                    <p>Copy</p>
                    <ul class="flush--left nav--no-style-type">
                        <li>
                        <button class="pi-modal-content-button wb-btn wb-btn--secondary">
                            <a class="pi-modal-content-link" href="#" title="Upgrade Button">
                            <admin:keyvalues key="datedbrowser.iebutton"/></a>  
                        </button>
                        </li>
                        <li><button class="pi-modal-content-button pi-modal-content-button__refusal" data-ng-click="rejectOffer()"><a class="pi-modal-content-link" title=""></a></button></li>
                    </ul>
                    <button data-ng-click="rejectOffer()" class="pi-modal-content-close md-close">X</button>
                </div>
            </div>
</aside>
正如您在指令中看到的,我正在从我创建的名为
SharedScopeUtility
的服务设置
customerRejectedOffer
的初始值

(function() {

  'use strict';

  angular.module('pi.app.sharedscopeutility', [
    'ngResource'
  ])

  .factory('SharedScopeUtility', function (){

    var hasAcceptedUpgrade = false;
    var _service = {
      hasAcceptedUpgrade: hasAcceptedUpgrade
    };

    return _service;
  });

}());
当用户单击“拒绝报价按钮”时,我将启动指令中显示的
rejectOffer()
函数
此函数将服务上的值从false更新为true,并在名为
customerRejectedOffer
的作用域上设置一个新值,然后在ng show中使用该值。这对于弹出式模式非常有效
但是,覆盖元素:

<div data-pi-browser-update data-ng-click="rejectOffer()" data-ng-show="!customerRejectedOffer" class="pi-modal-overlay"></div>

它使用了完全相同的指令和值作为它的ng show,但是仍然可见。 我为此创建了一个服务,因为我希望
rejectedOffer
布尔值来自一个单例,但是这仍然没有给我带来任何乐趣。 请帮忙:-)

  • 最重要的是。
    data ng show
    应该直接监听
    SharedScopeUtility.hasAcceptedUpgrade
    服务标志。请参考作用域上的
    SharedScopeUtility
    服务-
    scope.SharedScopeUtility=SharedScopeUtility
  • 您正在返回一个空函数-这是一个错误吗
    函数rejectOffer()()
  • rejectOffer()
    也应该在作用域上定义-
    scope.rejectOffer=function(){}
  • 我见过指令需要
    $timeout
    来传播范围更改的情况,但您可以通过引用上面建议的服务来避免这种情况 祝你好运,如果有帮助请告诉我

  • 最重要的是。
    data ng show
    应该直接监听
    SharedScopeUtility.hasAcceptedUpgrade
    服务标志。请参考作用域上的
    SharedScopeUtility
    服务-
    scope.SharedScopeUtility=SharedScopeUtility
  • 您正在返回一个空函数-这是一个错误吗
    函数rejectOffer()()
  • rejectOffer()
    也应该在作用域上定义-
    scope.rejectOffer=function(){}
  • 我见过指令需要
    $timeout
    来传播范围更改的情况,但您可以通过引用上面建议的服务来避免这种情况 祝你好运,如果有帮助请告诉我

    <div data-pi-browser-update data-ng-click="rejectOffer()" data-ng-show="!customerRejectedOffer" class="pi-modal-overlay"></div>