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

Angular 2中背景图片网址的属性属性绑定

傅元章
2023-03-14
问题内容

我一直在努力寻找background-image在许多 Angular 2 组件中动态更改属性的最佳方法。

在以下示例中,我尝试使用指令background-image将div的设置为一个@Input[ngStyle]

import {Component, Input} from '@angular/core';
import { User } from '../models';

// exporting type aliases to enforce better type safety (https://github.com/ngrx/example-app)
export type UserInput = User;

@Component({
  selector: 'profile-sidenav',
  styles: [ `
    .profile-image {
      background-repeat: no-repeat;
      background-position: 50%;
      border-radius: 50%;
      width: 100px;
      height: 100px;
    }
  `],
  template: `  
    <div class="profile-image" [ngStyle]="{ 'background-image': url({{image}})">
    <h3>{{ username }}</h3>
  `
})

export class ProfileSidenav {
  @Input() user: UserInput;
  blankImage: string = '../assets/.../camera.png';

  // utilizing "getters" to keep templates clean in 'dumb' components (https://github.com/ngrx/example-app) 
  get username() {
    return this.user.username;
  }
  get image() {
    if (!this.user.image) { return this.cameraImage;
    } else { return this.user.image; }
  }

我认为问题不是可观察的,因为username显示和类似的操作都会<img *ngIf="image" src="{{ image }}">渲染图像。我必须访问该background-image属性,因为显然这是制作圆形图像的最佳方法,但总的来说想知道如何执行此操作。

编辑:

我的原始[ngStyle]声明有不必要的花括号(ngStyle是可以接受变量的指令),并且在url()和周围缺少字符串标签image。正确的方法是(如下所示):

<div class="profile-image" [ngStyle]="{'background-image': 'url(' + image + ')'}"></div>`.

至于
在原来的编辑,一个解决方案也可以与实现渲染的角度2.我还没有做到这一点,但认为应该有一个办法类setElementStyles或类似的东西。我将尝试举一个例子,但是如果有人向我(和其他人)展示了如何做,我会很乐意。


问题答案:

我认为您应该使用类似的方法:

<div class="profile-image"
     [ngStyle]="{ 'background-image': 'url(' + image + ')'}">

image组件的属性在哪里。



 类似资料:
  • 问题内容: 我计划为朋友建立一个自定义的图片库,我确切地知道我将如何制作HTML,但是CSS遇到了一个小问题。 (如果可能,我希望页面样式不依赖于jQuery) 我的问题是:CSS 中的HTML 我将这种格式用于html缩略图: 我认为CSS应该看起来像这样: 我的目标是把从我的HTML文件,并使用它的每一个(或多个)在我的CSS文件来源。 问题答案: 您最终将可以使用 但是据我所知,这还没有实现

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

  • 问题内容: 我正在尝试在属性不足的属性中混合使用和属性。基于W3C的文档 应以斜杠()分隔属性之后。 W3C示例: 等效于: 但这是行不通的!还不清楚如何在和分别具有和或具有相同的值时使用简写属性。尚不清楚slash()是如何发生的?在我的Chrome15中无法正常运行。 我试图简化的示例是此CSS代码: 一个更清洁的例子 这不起作用 这也行不通 问题答案: 您的jsfiddle使用代替 似乎是“

  • 我正在试验角2和角材料。我使用< code>*ngFor让Angular生成< code > 这是< code > order-form . component . html 中的部分代码,它要求用户输入不同种类水果的数量: 这是相应的<代码> order-form.compone 在Chrome浏览器中,当我右击“苹果”的时候

  • 假设我有一个非常大的单元格网格,我想添加数据行和数据集合值,并从模型绑定。如何从angular2(Dart中的beta0)绑定数据行。 绑定的数据行= " {{boundVal}}”似乎并不 例如。

  • 问题内容: 我在一个变量中有一个图像URL,我正在尝试使用jQuery将其设置为CSS样式: 这似乎不起作用,因为: 返回。 任何想法,我在做什么错? 问题答案: 您可能希望这样做(使其像普通的CSS背景图像声明一样):