HTML(Jade):
a(href='#', data-placement='right', title="{{ someArrayOfStrings }}" tooltip)
其中someArrayOfStrings
在我的角度控制器初始化期间被赋予一个值:
角:
var myController = function($scope) {
$scope.initialize = function(someArrayOfStrings) {
$scope.someArrayOfStrings = someArrayOfStrings;
}
};
var tooltip = function() {
return {
restrict: 'A',
link: function(scope, element, attrs){
$(element).hover(function(){
$(element).tooltip('show');
}, function(){
$(element).tooltip('hide');
});
}
};
};
目前,这将提供我的工具提示内容,如下所示:
["string1","string2","string3"]
这是丑陋的,完全不是我想要的。
我想要显示的是这样的:
string1
string2
string3
我已经四处寻找,似乎有很多方法可以解决这个问题,但到目前为止,我还没有设法让它工作得很好,例如http://jsfiddle.net/superscript18/fu7a2/6/,http://jsfiddle.net/WR76R/和Render Html String in tooltip。
或者,我也许可以使用由<br/>
标记分隔的连接字符串。但是,这需要我的工具提示接受HTML标记。似乎有一个工具提示选项,即html: true
,但我无法让它工作。
想法/帮助?
演示小提琴@ jsfiddle.net/zr89sq6L/6/
答案 0 :(得分:1)
尝试此解决方案jsfiddle。
首先,创建指令,创建工具提示 $(element).tooltip({html: 'true'})
。
其次,使用stringArray.join('<br>')
使用 br 创建字符串。
示例:
var myApp = angular.module('myApp', []);
myApp.controller('MyCtrl', function($scope) {
$scope.name = 'Superhero';
$scope.stringArray = ["string1", "string2", "string3"];
})
.directive('tooltip', function() {
return {
restrict: "A",
link: function(scope, element) {
$(element).tooltip({
html: 'true'
});
}
}
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<script src="https://code.jquery.com/ui/1.9.0/jquery-ui.js"></script>
<link href="http://code.jquery.com/ui/1.11.4/themes/smoothness/jquery-ui.css" rel="stylesheet" type="text/css" />
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.0/angular.min.js"></script>
<div ng-app="myApp">
<div ng-controller="MyCtrl">
Hello, {{name}}!
<div ng-repeat="string in stringArray">
{{ string }}
</div>
<a href="#" data-placement="right" title="{{ stringArray.join('<br>') }}" tooltip>tooltip</a>
</div>
</div>
&#13;
答案 1 :(得分:0)
您只需将标题属性设置为title="{{ stringArray.join('\u000A') }}"
即可。请检查小提琴http://jsfiddle.net/Noblemo/u9tt9xb2/