动态设置变量

时间:2018-02-13 15:18:23

标签: javascript angular

是否可以动态设置变量?

我的代码看起来像这样。 if得到了,但我如何(如果可能的话)动态地将变量设置为true?

import { Component, OnInit, } from '@angular/core';
import {forEach} from "@angular/router/src/utils/collection";

@Component({
  selector: 'app-menu',
  templateUrl: './menu.component.html',
  styleUrls: ['./menu.component.css']
})
export class MenuComponent implements OnInit {
  menuContentSize = false;
  menuContentBackground = false;
  menuContentImages = false;
  menuContentText = false;
  menuContentFrame = false;

  menuOptions: string[] = ['menuContentSize',
    'menuContentBackground',
    'menuContentImages',
    'menuContentText',
    'menuContentFrame'];


  constructor() {
  }

  ngOnInit() {
  }

  menuOptionSelected(event){
    this.menuOptions.forEach(function(element){
      if(element == event){
        // Set name of element(variable) to true
        // In my dreamworld this.element = true; will be e.g. this.menuContentSize = true;
      }

    });

  }
}

1 个答案:

答案 0 :(得分:2)

this.menuOptions.forEach(function(element){

需要

this.menuOptions.forEach((element) => {

如果您想使用this来引用当前组件实例

另见https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/Arrow_functions

我不确定你的其他问题。

我想你想要的是

this[element] = true;

如果this.menuContentSize包含字符串值true

,则会将element设置为'menuContentSize'