Angular Js ng-click 没有触发?`
Angular Js ng-click not firing?`
我在 angular 应用程序中遇到最奇怪的问题,让 ng-click 触发。
这是我正在处理的事情:
<div class="popup" id="perks-popup" ng-if="perksPopup === true">
<div class="popup-bkg" ng-click="perksPopup = false;"></div>
<div class="popup-content">
<div class="popup-close" ng-click="perksPopup = false;">
<img class="scalableImg" src="img/icons/close-blue.png" alt="">
</div>
</div>
</div>
这是基本控制器:
(function(){
"use strict";
Caribou2015.controller('BaseController', ['$rootScope', '$scope', 'Dates', function($rootScope, $scope, Dates){
console.log('base controller init');
//overlay and popup states
$rootScope.welcomePopup = false;
$rootScope.perksPopup = true;
$rootScope.calPopup = false;
}]);
})();
使用此设置,我希望发生的是额外津贴弹出窗口 div 会出现,当我单击其背景或弹出窗口关闭 div 时,它会被 ngIf 删除。好吧,它显示得很好,但是单击关闭或背景什么也没做。我什至在变量上添加了一个 $rootScope.$watch
以查看它是否发生变化,但我什么也没得到。似乎 ng click 事件根本没有触发。有什么我想念的吗?
Don't pollute $rootScope
its bad pattern, do use service/factory
while you wanted to share data between various component.
ng-if
确实在该元素值数据类型上创建了一个原型继承的子范围,该范围不会在 div
中填充值,您需要添加 $parent.
以访问范围变量,在 As you are using scope variable ng-if
导致问题之前,您需要在声明模型时遵循点规则,假设它在范围内是 $scope.model={}
然后分配所有属性并将其用于html.
标记
<div class="popup" id="perks-popup" ng-if="model.perksPopup === true">
<div class="popup-bkg" ng-click="model.perksPopup = false;"></div>
<div class="popup-content">
<div class="popup-close" ng-click="model.perksPopup = false;">
<img class="scalableImg" src="img/icons/close-blue.png" alt="">
</div>
</div>
</div>
控制器
$scope.model = {};
$scope.model.perksPopup = true;
我在 angular 应用程序中遇到最奇怪的问题,让 ng-click 触发。
这是我正在处理的事情:
<div class="popup" id="perks-popup" ng-if="perksPopup === true">
<div class="popup-bkg" ng-click="perksPopup = false;"></div>
<div class="popup-content">
<div class="popup-close" ng-click="perksPopup = false;">
<img class="scalableImg" src="img/icons/close-blue.png" alt="">
</div>
</div>
</div>
这是基本控制器:
(function(){
"use strict";
Caribou2015.controller('BaseController', ['$rootScope', '$scope', 'Dates', function($rootScope, $scope, Dates){
console.log('base controller init');
//overlay and popup states
$rootScope.welcomePopup = false;
$rootScope.perksPopup = true;
$rootScope.calPopup = false;
}]);
})();
使用此设置,我希望发生的是额外津贴弹出窗口 div 会出现,当我单击其背景或弹出窗口关闭 div 时,它会被 ngIf 删除。好吧,它显示得很好,但是单击关闭或背景什么也没做。我什至在变量上添加了一个 $rootScope.$watch
以查看它是否发生变化,但我什么也没得到。似乎 ng click 事件根本没有触发。有什么我想念的吗?
Don't pollute
$rootScope
its bad pattern, do useservice/factory
while you wanted to share data between various component.
ng-if
确实在该元素值数据类型上创建了一个原型继承的子范围,该范围不会在 div
中填充值,您需要添加 $parent.
以访问范围变量,在 As you are using scope variable ng-if
导致问题之前,您需要在声明模型时遵循点规则,假设它在范围内是 $scope.model={}
然后分配所有属性并将其用于html.
标记
<div class="popup" id="perks-popup" ng-if="model.perksPopup === true">
<div class="popup-bkg" ng-click="model.perksPopup = false;"></div>
<div class="popup-content">
<div class="popup-close" ng-click="model.perksPopup = false;">
<img class="scalableImg" src="img/icons/close-blue.png" alt="">
</div>
</div>
</div>
控制器
$scope.model = {};
$scope.model.perksPopup = true;