在我的代码中,我有两个指令。一个在控制器范围内,另一个不在html
部分。
<div ng-show="isStore==true">
<packgroup-directive>
</packgroup-directive>
<div class="lineBreaker" ng-if="groupList.length>0"></div>
<div ng-controller="WalletController">
<outfit-directive></outfit-directive>
<div class="imageContainer" ng-show="getPurchaseState() == false" ng-click="buyAllOutfit()">
<img class="feature1" ng-src="/app/app_resources/language/en/resources/{{buyAllOutfitBanner}}"/>
<div class="buttonBanner">{{allOutfitBannerValue}}
<img style="width: 20%" ng-src="/app/app_resources/icons/pep_sign_black.png"></div>
</div>
</div>
此处packgroup-directive
外面没有控制器标记,而outfit-directive
位于WalletController
标记内。
所以我面临的问题是我有一个变量popupopen
来控制弹出窗口的关闭。在我的控制器中,我从另一个JS文件中调用此函数:
$scope.checkPopup = function(){
if(popupOpen==1 && dialogID!=null){
ngDialog.close(dialogID);
ngDialog.close($scope.dialogID);
bridge.getPopupState("0");
}
}
此函数是从其他JS文件调用的,但更新后的值仅显示packgroup directive
但不显示outfit-directive
,但是当我从WalletController
标记中删除它时,它会显示正确的价值。
答案 0 :(得分:1)
问题是你有两个独立的范围。一个是父级(由packgroup使用),一个是子级(由WalletController使用)。因此,要实现所需的行为,您需要在它们之间共享数据。这可以通过下一种方法来完成:
希望这会有所帮助。 您也可以阅读此article