html - 切换 JSON 对象值

标签 html angular typescript

我有以下代码来显示轮播内的图像

<div class="carousel container px-0" *ngIf="module.type === 3">
  <div class="container px-0 position-absolute left">
    <div [ngStyle]="{ 'background-image': 'url(' + module.urlLeft + ')'}" class="img-container" (click)="decrease(i)">
    </div>
  </div>

  <div class="container px-0 position-absolute right">
    <div [ngStyle]="{ 'background-image': 'url(' + module.urlRight + ')'}" class="img-container" (click)="increase(i)">
    </div>
  </div>

  <div [ngStyle]="{ 'background-image': 'url(' + module.urlCenter + ')'}" class="img-container">
  </div>
</div>

module 是一个包含多个图片url的数组对象,该数组包含多个模块:

urlLeft: 'url'
urlCenter: 'url'
urlRight: 'url'

如何切换该特定模块的所有图像(可能有多个带有轮播的模块),例如通过将 urlLeft 中的图像分配给 urlCenter,将 urlCenter 中的图像分配给 urlRight 以及 urlRight< 中的图像urlLeft




我尝试了以下方法,但显然这不起作用,因为一旦 urlLefturlCenterurlRight 也将是 urlCenter:

decrease(index) {
    this.modules[index].urlLeft = this.modules[index].urlCenter;
    this.modules[index].urlCenter = this.modules[index].urlRight;
    this.modules[index].urlRight = this.modules[index].urlLeft;
}

最佳答案

使用 ES6 会很容易,试试这个:

const { urlLeft , urlCenter , urlRight } = this.modules[index]; 
this.modules[index].urlLeft = urlCenter;
this.modules[index].urlCenter = urlRight;
this.modules[index].urlRight = urlLeft;

工作代码片段:

var jsonObj = { first : 1 , second : 2 , third : 3 };
console.log( 'Before Exchange ====> ' , jsonObj);
const { first , second , third } = jsonObj;
jsonObj.first = second;
jsonObj.second = third;
jsonObj.third = first;
console.log( 'After Exchange ====> ' ,jsonObj);

关于html - 切换 JSON 对象值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57451898/

相关文章:

image - 如何将背景图像淡化为透明?

css - PrimeNG:p-inputNumber 的 CSS 背景

angular - 在新选项选择错误时使用多项选择的 react 形式

asp.net - 发送 POST 请求时,带有 ASP.NET Core CORS 的 Angular2 出现问题

javascript - 在嵌套 Promise 中传递对象

javascript - 如何在 Angular 中获取所选选项的索引

angular - 如何在不更改值的情况下更新/重新绑定(bind)变量?

javascript - 可编辑表格(单击时删除文本并添加文本字段)触发次数过多

javascript - 在 JS 中手动输入 VS 设置值

html - 使元素的大小/行为类似于背景大小 : contain