2015-11-28 20 views
8

anglejsテンプレートを含むツールチップを実装しようとしています。このために、私は "uib-tooltip-html"を使い、要素をテンプレートにコンパイルするための属性を追加します。しかし、それは動作しません。ここ は、ここでは、コード あるplunker http://plnkr.co/edit/y1TvogsFFBoBVra3gO3F?p=preview"uib-tooltip-html"でangularjsのツールチップ

<html> 
<head lang="en"> 
    <meta charset="UTF-8"/> 
    <title>uib-tooltip-html test</title> 
    <link href="https://netdna.bootstrapcdn.com/bootstrap/3.1.1/css/bootstrap.min.css" rel="stylesheet"> 
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.1/angular.js"></script> 
    <script src="https://angular-ui.github.io/bootstrap/ui-bootstrap-tpls-0.14.3.js"></script> 
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/angularjs/1.4.1/angular-sanitize.min.js"></script> 
    <script> 
     var app = angular.module("test", ['ngSanitize','ui.bootstrap']).config(function($sceProvider) { 
      $sceProvider.enabled(false); 
     }); 

     app.controller("testController", function($scope, $http, $interval, $sce) { 
      $scope.text = $sce.trustAsHtml('<table><tr ng-repeat="x in [1,2,3]"><td>{{ x }}</td></tr></table>'); 
     }); 
     app.directive('compileTemplate', function($compile, $parse){ 
    return { 
     link: function(scope, element, attr){ 
      var parsed = $parse(attr.uibTooltipHtml); 
      console.log(attr.uibTooltipHtml); 

      function getStringValue() { return (parsed(scope) || '').toString(); } 
      console.log(getStringValue()) 
      //Recompile if the template changes 
      scope.$watch(getStringValue, function() { 
       console.log('ca passe'); 
       $compile(element, null, -9999)(scope); //The -9999 makes it skip directives so that we do not recompile ourselves 
      }); 
     }   
    } 
}); 
    </script> 

    </head> 
<body> 

<div ng-app="test" ng-controller="testController"> 

    <p style="margin-top: 5em;" uib-tooltip="Some text" > 
     A Thing With a Tooltip 
    </p> 

    <p style="margin-top: 5em;" uib-tooltip-html="text" compile-template> 
     A Thing With an HTML Tooltip 
    </p> 

</div> 

は、あなたがこのようuib-tooltip-templateを使用することができ、あなたの答え

+0

http://stackoverflow.com/a/28189625/1061668 –

答えて

8

のために事前にありがとうございれる:

<p style="margin-top: 5em;" uib-tooltip-template="'myTooltipTemplate.html'"> 
    A Thing With an HTML Tooltip 
</p> 

そしてプットにmyTooltipTemplate.htmlのhtml:

<table><tr ng-repeat="x in [1,2,3]"><td>{{ x }}</td></tr></table> 

テンプレートは別ファイルになります。

ドキュメント:https://angular-ui.github.io/bootstrap/#/tooltip

plnkr:http://plnkr.co/edit/tiCHpd0LipixXbO4Xfa5?p=preview

+0

どうでしょう動的なコンテンツを持つこの作品?私はそれがシンプルだと大好きですが、私はこのようなことをどうやってできるのか見ていません。「

Actual TY
'ここに「月:24
YTD:45」が返されますか? – Grandizer

+0

@Grandizerでは、テンプレートはレンダリングされるhtmlの「インクルード」として機能するので、divのコンテキスト内で動作します。例えば:

ACTUAL TY
でも関数を呼び出すことができます。
{{ GetWorkingDays('YTD TY') }}
bubbassauro

+0

私の問題だと思いますが、YTD TYは変更されます。だから、私は何を変えることができる "表現"や$イベントなのか? – Grandizer

関連する問題