当前位置: 首页 > 面试题库 >

AngularJS-ng样式不会更新CSS背景属性

丁鸿信
2023-03-14
问题内容

我有一个返回图像URL的服务,并且使用以下代码进行调用:

angular.forEach(results, function (item) {
     item.img = "/images/searchItem.jpg";
     $http.post("https://my.api.com/?id=" + item.id).success(
           function (url) {
               item.img = url;
           });
});

在我看来,我曾经有一个带有ng-src属性的图像,它的工作原理非常像这样:

<img  ng-src="{{item.img}}">

然后,我决定在SPAN上使用背景图片:

<span ng-style="{'background':'transparent url({{item.img}})'}"></span>

现在该流程仅在第一次运行时有效,之后我可以在控制台中看到以下html

<span ng-style="{'background':'transparent url(http://expertsimages.liveperson.com/images/rating/rate10.gif)'}" style="background-image: url(https://fb.lp-chat.com/images/searchItem.jpg); background-color: transparent; background-position: initial initial; background-repeat: initial initial;"></span>

这表示该变量已更新,但是html仍处于其初始状态。

我尝试在成功发布后致电apply / digest,但已经遇到了错误 $ digest(正在进行中)
(有意义)。有趣的是,在进行常规摘要(例如,对其他ui进行更改)之后,将应用样式,并且我看到了正确的图像。

我在这里想念什么?

更新: 我创建了一个 JS小提琴
来演示此问题……对我而言似乎像是一个有角度的错误。


问题答案:

我也遇到了这个问题。而不是使用进行求{{ }}值,而是使用字符串+值串联。

这将起作用:

<span ng-style="{'background':'transparent url(' + item.img + ')'}"></span>)

这是您的 提琴 的工作版本
****



 类似资料:
  • 本文最初发表于博客园,并在GitHub上持续更新前端的系列文章。欢迎在GitHub上关注我,一起入门和进阶前端。 以下是正文。 background系列属性 常见背景属性 CSS样式中,常见的背景属性有以下几种:(经常用到,要记住) background-color:#ff99ff; 设置元素的背景颜色。 background-image:url(images/2.gif); 将图像设置为背景。

  • 问题内容: 我正在尝试通过使用angular将背景图像应用于div (我之前尝试过使用具有相同行为的自定义指令),但是它似乎没有用。 不过,如果我尝试使用背景色,则效果似乎很好。我也尝试了远程源和本地源,但都没有用。 问题答案: 正确的语法是: ng-style的正确语法是:

  • 问题内容: 我正在尝试使用array 更新 ng-grid。我 这里 有个小伙伴。 添加按钮添加新行。更新按钮更新阵列中的最后一项。 选择一行并按更新按钮。没发生什么事。 按添加按钮。现在,UI将使用新元素&以及以前更新的元素进行更新。 相同的行为一次又一次地重复。 我试过了。我得到: “错误:$ apply已经在进行中” 我什至尝试通过将块放置在呼叫中来进行尝试。同样是同样的错误! 任何指针!

  • 问题内容: 这是我的HTML: 当我在框中输入内容时,该模型会通过2向绑定机制进行更新。甜。 但是, 当我通过JQuery执行此操作时… 它不会更新模型。为什么? 问题答案: Angular不知道这种变化。为此,您应该在以下位置致电或进行更改: 看到这个以更好地了解 脏检查 更新 :这是一个示例

  • 主要内容:1. background-color,2. background-image,3. background-repeat,4. background-position,5. background-attachment,6. background-size,7. background-origin,8. background-clip,9. background在制作网页时我们往往需要在网页中添加一些背景颜色、背景图像让网页更加美观,吸引访问者的眼球。CSS 中提供了一系列用于设置 HT

  • 问题内容: 由于某些原因,我无法使用以下命令更改元素的样式: 我敢肯定,因为它返回一个DOM元素。另外,这可行: (我发现的所有内容都与ngStyle有关,但我不认为这是我想要的?) 我应该使用其他东西吗? 如果是这样:什么?为什么不起作用? 问题答案: 根据 文档 : 注意:Angular中的所有元素引用始终使用jQuery或jqLit​​e进行包装; 它们永远不是原始的DOM引用。 因此,该属