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