javascript - 不评估模板内的变量

标签 javascript html css angularjs

我的 Jade 标记如下所示:

li(ng-repeat="parcel in parcels | filter : filterActiveAreaParcels")
  .parcel-image(style="background-image:url({{parcel.image}});")

出于某种原因,有时我在尝试检索 http://localhost:3501/%7B%7Bparcel.image%7D%7D 时遇到 404 错误,但并非总是如此, 但是有时。尽管正在检索所有图像并正确显示在页面上。 这可能是什么问题?

最佳答案

http://localhost:3501/%7B%7Bparcel.image%7D%7Dhttp://localhost:3501/{{parcel.image}}

请记住,当 Angular 编译它时,HTML 实际上位于 DOM 中。所以你的浏览器(在应用程序启动之前的一小段时间)在 DOM 中有这样的东西:

<div class="parcel-image" style="background-image:url({{parcel.image}})">...</div>

当它看到样式属性时,它会使用 /{{parcel.image}} 访问您的服务器。

这就是为什么您偶尔会看到 404。

编辑:您可以使用 the ngStyle directive解决这个问题:

ngStyle 指令将监视一个对象并应用它包含的样式。

所以在你的 html 中:

<div class="parcel-image" ng-style="styles">...</div>

在你的 Controller 中:

app.controller('ParcelImageController', function($scope) {
  $scope.parcel = {/*some object*/};
  $scope.style = {
    'background-image': 'url(' + $scope.parcel.image + ')'
  };
});

Here a fiddle with an example of this in action.

关于javascript - 不评估模板内的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14894374/

相关文章:

javascript - AngularJS:深度对象修改后 View 未更新

javascript - jQuery 中的多个输入 ID 以更改父级中的一个跨度

html - 在中心制作表格

javascript - (Javascript + HTML) 如何将我的选择语句答案放入我的绘图 Canvas 中

angularjs - 如何为::之前添加悬停

javascript - 将数据添加到 Bootstrap 模式

javascript - itext7 - itext7 中 pdfReader 类中 getJavascript 的等效方法

javascript - 组合的自定义过滤器

html - 更改 HTML 符号的字体颜色

html - 在 Bootstrap 中定位播放按钮和视频背景部分