【问题标题】:Angular use marquee tag in ng-html-bindAngular 在 ng-html-bind 中使用选取框标签
【发布时间】:2014-11-20 12:22:35
【问题描述】:

我有一个信息文本区域,它以从右到左的选取框表示。但我也每 45 秒更新一次文本,我想重新启动选取框的运动

文本更改后如何重新开始移动文本?我使用 angular ng-html-bind 每 45 秒更新一次文本

我的控制器代码如下;

$scope.bind = "<p><font size=\"6\"><marquee>Hello</marquee></font></p>";

HTML代码;

<div ng-bind-html="bind">

【问题讨论】:

  • 选框它不是官方的 w3c 标签。避免它并使用专用的js。但是,如果您想保留此标签,则必须欺骗该页面。当您刷新测试时,复制整个

    ,删除实际的副本,然后添加带有新文本的副本,以便选取框从位置 0 开始。这看起来很丑,因为真正的解决方案是避免选取框。

标签: javascript html angularjs ng-bind-html


【解决方案1】:

我建议只绑定文本,而不是尝试绑定 html。

JSBIN

如果您确实想绑定新的 html,可以使用$sce 将 html 标记为安全并从您的 html 字符串中删除转义字符 \:

$scope.myHtml = $sce.trustAsHtml('<p><font size="6"><marquee>Hello</marquee></font></p>');

JSBIN

【讨论】:

  • 我的问题没有约束力。我可以每 45 秒绑定一次文本。但我想重新开始文本的位置。在您的示例中也像我的代码一样,文本更改正常,但它会在更改的地方继续。文本更改时我该怎么做才能重新开始位置?
  • 我的第二个 JSBIN 会重新开始文本的位置。它加载了一个新的选取框元素。
  • 是的,它可以工作,但我仍然有问题,因为我每 45 秒调用一次 web 服务,并且我用新的数据超时更新文本对我来说不起作用我认为 :(
  • $timeout 与问题无关。当您从您的网络服务获得响应时,您可以使用 $sce 将新的 html 分配给您的 $scope.bind 变量。我已经更新了第二个 JSBIN 以使用间隔,每 4 秒更新一次。要查看 45 秒更新的示例,您可以将 4000 更改为 45000。
  • 是的,你说得对,我的问题不是超时。这是工作,非常感谢兄弟!
猜你喜欢
  • 1970-01-01
  • 2019-02-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-15
  • 1970-01-01
  • 1970-01-01
  • 2015-04-15
相关资源
最近更新 更多