2017-05-10 4 views
0

私は自分の写真を自分の写真にアップロードさせてしまいますが、その間に画像を撮り、小さくし、属性(ng-click)を加えてコンパイルしてnewelementに追加します。これは、写真のアップロードに一度トリガーされます。別の値に基づいてng-clickをクリックする

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-クリックを持ちたい(NG-click属性を持っているか、$rootScope.activeTabに来る価値に基づいていけません、他にはありません)。このような場合はどのように処理するのかはまだ分かりません。

$rootScope.activeTabは、どのタブに基づいて監視され、動的に変更されます。

試してみましたが、myEl.attr('ng-click', $rootScope.activeTab === 'stickers' ? '' : 'openImage($event)');のように試してみましたが、アップロード時に一度評価されるため動作しません。別のタブに切り替えると、この値は更新されません。

答えて

0

ng-clickを削除しないようにしてください。ロジックはopenImage関数で処理できます。

$scope.openImage = function($event) { 
    if ($rootScope.activeTab === 'stickers') { 
    return; 
    } 

    // Do whatever you were planning on doing. 
}; 
+0

なぜ私がこのように考えていたのか分かりません。そのような複雑な方法で意味します。ありがとう!これは助けになった! – funguy

+1

np - 私たちは皆それを行います - 私たちは、問題を解決する方法の一つに巻き込まれ、他の方法を逃してしまいます。 –

関連する問題