- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
angularjs 相对较新。帮助我了解这里发生了什么!
我最终想要完成的事情:给定我的 html 中的一段文本(比如在段落元素中),我想动态地向文本中的选定单词添加工具提示(确切地说是引导工具提示)。因此,例如,如果用户在搜索框中键入世界“你好”,则该段落中所有“你好”的实例将在鼠标悬停时显示工具提示,显示一些消息,如定义或其他内容。
注意:我不认为我最初对此很清楚,但我想添加工具提示的文本 block 已经在 html 中,并且周围不会有任何类型的指令标记标记它。看我的fiddle一个例子。
我已经在 jQuery 中完成了这个...现在我正试图让它在 angularjs 中工作!
我的第一次尝试是使用带有正则表达式的自定义过滤器,它将带有工具提示属性的“a”标签插入到段落的适当位置。新标记出现了,但似乎没有被 angularjs“看到”(还不太确定术语,但我认为它没有被“绑定(bind)”??)。
这是 jsfiddle 上说明的问题:
http://jsfiddle.net/petersg5/pF33a/2/
(1) 输出中的第一行有一个关于“foo”的有效工具提示……它只是直接在标记中具有工具提示属性。生成的 html:
<a href="#" tooltip-placement="top" tooltip="basic tooltip" class="ng-scope">foo</a>
(2) 第二行使用 ng-bind-html,并具有属性,但不是工作工具提示。生成的 html:
<a href="#" tooltip-placement="top" tooltip="tooltip via ng-bind-html">foo</a>
(3) 第三行使用过滤器,并且有属性,但不是工作工具提示。生成的 html:
<a href="#" tooltip-placement="top" tooltip="tooltip via filter">foo</a>
我的主要问题是......如何解决我上面描述的任务?
第二个问题是关于理解上述 3 个示例中的每一个示例的情况。我注意到 (1) 中的直接输出在生成的标记中有一个由 angular 插入的“ng-scope”类。其他两个没有这个,但是在父 p 标签中插入了一个 ng-binding 类。不确定这里发生了什么,但我认为这与我的问题有关。
我觉得解决方案可能涉及指令,但我不确定如何将该指令应用于现有文本(即标记中已有的 p 标记)。
谢谢!
编辑:更新了 jsfiddle 以更准确地反射(reflect)问题(输出的第四行)
最佳答案
处理 HTML
的正确方法是 angular 指令,让我们创建一个带有两个参数的指令(比如 dynamic-tooltip
)
在 HTML
中
<p dynamic-tooltip="my message" tooltip-element="searchElement">
Hello World check out my foo bar app
</p>
searchElement
将与任何模型绑定(bind),例如
<input type="search" ng-model="search">
<input type="button" value="Search" ng-click="searchElement = search">
这里当你点击search
按钮时,你在搜索框中输入的值将被设置到searchElement
指令定义为:
app.directive('dynamicTooltip', function($compile) {
return {
restrict: 'A',
scope: {
tooltipElement: '=',
dynamicTooltip: '@'
},
link: function(scope, element, attrs) {
var template = '<a href="#" tooltip-placement="top" tooltip="' + scope.dynamicTooltip + '">{{tooltipElement}}</a>';
scope.$watch('tooltipElement', function(value) {
var previousTooltip = element.find('a');
angular.forEach(previousTooltip, function(item, i) {
var el = angular.element(item);
el.replaceWith(el.text());
});
var searchText = scope.tooltipElement;
if (searchText) {
replaced = element.html().replace(new RegExp(searchText, "g"), template);
element.html(replaced);
}
$compile(element.contents())(scope);
});
}
}
})
指令 $watch
tooltip-element
,因此当您更改值时,它首先尝试删除以前的工具提示,然后尝试匹配您的 search- word
如果找到则创建工具提示。
检查 Demo
关于javascript - 如何将 angularjs ui bootstrap 工具提示动态添加到现有标记?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21490194/
这个问题在这里已经有了答案: Android ADT version required 20.0.0 and above (10 个答案) 关闭 9 年前。 我刚刚安装了 Eclipse Juno
按照 This page from codeplex 上的指南进行操作后,我无法在我的工具/选项窗口中看到 Python 选项。我认为我与指南的唯一偏差是: 发行版:没有安装 activestate
我有一个非常大的 .sql 脚本。我将此脚本添加到 Visual Studio 2013 下的 SQL Server 项目中。当我尝试构建它时,我收到此错误消息 This T-SQL script e
当我在SpringBoot项目中想加个依赖,但是不确定现有依赖的依赖的依赖.....有没有添加过这个依赖,怎么办呢?如果添加过了但是不知道我需要的这个依赖属于哪个依赖的下面,怎么查呢? IDEA中提供
我正在做一个项目来减少 PDF 的大小,压缩它们。我想知道市场上是否有任何非常好的工具/库(.NET)。 我确实尝试了一些像 Onstream Compression 这样的工具,但结果并不令人满意。
我想从我的源代码编译一个安卓内核。 但我想使用工具或类似的东西。 所以我只需单击一个按钮并获得一个可闪存的 zip 文件... 有工具吗? 我可以用脚本来做吗? 谢谢! 最佳答案 这取决于您从哪里获得
我们生成 pdf 文件,其中包含有关数万名客户每月财务余额的数据。在高峰期(年底有 100.000 个文件),使用在 5 台服务器之间分配负载,该过程可能需要长达 5 天的时间才能完成。工作负载的分配
模块:xmllib xmllib 是一个非验证的低级语法分析器。应用程序员使用的 xmllib 可以覆盖 XMLParser 类,并提供处理文档元素(如特定或类属标记,或字符实体)的方法。从 Py
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。 关闭 3 年前。
我在一家医疗保健公司工作,拥有有关患者位置(地址、城市、州、 zip )的信息。我试图确定有多少百分比的患者住在离 5 个特定位置最近的地方。我正在寻找的答案是“25% 的患者住在离#1 地点最近的地
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 4年前关闭。 我们不允许在 Stack Overflow 上提出有关通用计算硬件和软件的问题。您可以编辑问
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be
请问我在哪里可以得到 SvcTraceViewer 工具? 我尝试下载并安装许多 SDK。 我查看了程序文件的垃圾箱。 我需要它来跟踪我的 WCF 调用出了什么问题。 最佳答案 您可以通过下载 Win
我正在尝试在我最喜欢的编辑器中设置适当的代码完成功能,我们将其称为AnEditor,以避免互联网上充斥着特定于程序的答案。 (您知道语言是ALanguage。)编辑器具有两个我喜欢的功能:它既可以在控
就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引起辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the he
当 merge 的两个分支对同一文件有更改时,Mercurial 是否总是使用外部 merge 工具? 或者它是否首先查看它是否可以 merge 文件本身,如果不能,则仅转向外部工具? 我问的原因是我
我正在为我使用的编辑器编写 Scala 插件,该插件将突出显示所有未使用的代码路径(可能未使用 defs 、 vals 、 classes 和 implicits ),并为用户提供一个选项以将它们从.
我有 jquery 工具滚动器...我喜欢它只为 swipeLeft swipeRight 实现触摸选项。 当我使用 touch: true 时,它也会在向上/向下滑动时旋转.. 我按照此处的说明
我已经尝试了一些用于构建 UML(对象/依赖图)的 Eclipse 工具,但我真正需要的是一个工具来生成这样的代码外 UML。 (反之亦然) 我更喜欢一个简单的 UML 工具,它易于安装并且没有任何依
已关闭。此问题不符合Stack Overflow guidelines 。目前不接受答案。 要求我们推荐或查找工具、库或最喜欢的场外资源的问题对于 Stack Overflow 来说是偏离主题的,因为
我是一名优秀的程序员,十分优秀!