我让用户上传自己的照片,当这种情况发生时,我拍摄图像,使其变小,添加属性(ng-click(,编译它并附加到newelement。这在照片上传时触发一次:
var myEl = angular.element(image); // getting an image
myEl.attr('ng-click', 'openImage($event)'); // adding ng-click
$compile(myEl)($scope); //compile
newelement.append(myEl); // adding to an element in the DOM
问题是之后我想要要么有 ng-click 属性,要么不基于$rootScope.activeTab
的值(在一个选项卡中,我想有 ng-click,在另一个选项卡中 - 不要(。还不确定如何处理这种情况。
$rootScope.activeTab
被监视并根据用户的选项卡动态变化。
尝试了这样的事情:myEl.attr('ng-click', $rootScope.activeTab === 'stickers' ? '' : 'openImage($event)');
但它不起作用,因为它在上传时被评估一次。当我切换到其他选项卡时,此值不会更新。
忘记删除ng-click
.您可以在openImage
函数中处理逻辑。
$scope.openImage = function($event) {
if ($rootScope.activeTab === 'stickers') {
return;
}
// Do whatever you were planning on doing.
};