2016-06-01 9 views
0

私は、角度のポップオーバーを使用してフォーカスをポップアップするツールチップを持っています。私がしなければならないことは、ボタンをクリックすると、それをぼかしでポップアップに変えることです。変更されますが、ツールヒントの動作は変更されません。以下はhtmlのangleプロパティの値を変更できないのはなぜですか?

http://plnkr.co/edit/L1oeZQrQdF0AdJMKVsG6?p=previewコードです:ここで

がplunkrある uib-popoverディレクティブ the source codeを見てみると

<input type="text" 
      ng-model="value" 
      value="{{value}}" 
      uib-popover-template="htmlPopover" 
      popover-trigger="{{triggerOn}}" 
      popover-popup-close-delay="1000" 
      class="form-control"> 


    <script type="text/ng-template" id="myPopoverTemplate.html"> 
     <div> 
      <button ng-click="test()"><b style="color: red">Add message</b></button> 
     </div> 
    </script> 

コントローラ

function ($scope) { 
    $scope.value = "Click me!"; 
    $scope.dynamicPopover = { 
     content: 'Hello, World!', 
     templateUrl: 'myPopoverTemplate.html', 
     title: 'Title' 
    }; 

    $scope.message = 'Trigger: none'; 

    $scope.triggerOn = "focus"; 

    $scope.changeTrigger = function(){ 

     $scope.triggerOn = "blur"; 

     $scope.message = "Should trigger on blur"; 
    } 

    $scope.test = function(){ 
     $scope.value = "test me click"; 
    } 

    $scope.htmlPopover = 'myPopoverTemplate.html'; 
}); 

答えて

0

、1はそのトリガーが設定されていることができますディレクティブがリンクされている場合

compile: function(tElem, tAttrs) { 
     var tooltipLinker = $compile(template); 

     return function link(scope, element, attrs, tooltipCtrl) { 
     var tooltip; 
     var tooltipLinkedScope; 
     var transitionTimeout; 
     var showTimeout; 
     var hideTimeout; 
     var positionTimeout; 
     var appendToBody = angular.isDefined(options.appendToBody) ? options.appendToBody : false; 
     //TRIGGERS SET AT LINK TIME 
     var triggers = getTriggers(undefined); 
     var hasEnableExp = angular.isDefined(attrs[prefix + 'Enable']); 
     var ttScope = scope.$new(true); 
     var repositionScheduled = false; 
     var isOpenParse = angular.isDefined(attrs[prefix + 'IsOpen']) ? $parse(attrs[prefix + 'IsOpen']) : false; 
     var contentParse = options.useContentExp ? $parse(attrs[ttType]) : false; 
     var observers = []; 
     var lastPlacement; 

1は、ディレクティブがトリガー方法を変更したい場合、ディレクティブは、トリガーの各変更に$compileサービスで再コンパイルする必要があります。

関連する問題