Javascript ng类不工作

Javascript ng类不工作,javascript,angularjs,typescript,ionic2,Javascript,Angularjs,Typescript,Ionic2,快速提问。我第一次尝试处理ng课程,我想知道我做错了什么 因此,在我的HTML中,我有: <ion-icon name="logo-facebook" class="big" ng-class="{selected: facebook.selected}" (tap)="addSocial('Facebook')" ></ion-icon> <ion-icon name="logo-twitter" class="big" ng-class="{selected:

快速提问。我第一次尝试处理ng课程,我想知道我做错了什么

因此,在我的HTML中,我有:

<ion-icon name="logo-facebook" class="big" ng-class="{selected: facebook.selected}" (tap)="addSocial('Facebook')" ></ion-icon>
<ion-icon name="logo-twitter" class="big" ng-class="{selected: twitter.selected}"  (tap)="addSocial('Twitter')"></ion-icon>
在我的ts中,我有:

facebook = {
"selected" : false,
"type" : "Facebook"
}

twitter = {
"selected" : false,
"type" : "Twitter"
}
...
... 
    addSocial(type){
    // reinit all to selected false
    for(var i in this.all){
      this.all[i].selected = false;
    }
    switch(type) {
      case "Facebook":
      this.facebook.selected = true;
      break;
      case "Twitter":
      this.twitter.selected = true;
      break;
      case "Instagram":
      this.insta.selected = true;
      break;
      case "LinkedIn":
      this.linkedin.selected = true;
      break;
      case "Github":
      this.github.selected = true;
      break;
    }
    this.atLeastOneSelected = true;
    this.currentSocial = type;
    console.log(JSON.stringify(this.all));
  }
当我点击facebook时,我可以看到文本字段显示为“Entrez votre facebook”,在我的日志中我有:

[{“selected”:true,“type”:“Facebook”},{“selected”:false,“type”:“Twitter”},{“selected”:false,“type”:“Instagram”},{“selected”:false,“type”:“LinkedIn”},{“selected”:false,“type”:“Github”}]

twitter也是如此 [{“selected”:false,“type”:“Facebook”},{“selected”:true,“type”:“Twitter”},{“selected”:false,“type”:“Instagram”},{“selected”:false,“type”:“LinkedIn”},{“selected”:false,“type”:“Github”}]

当我直接将类“selected”应用于该类时,它正在工作,但使用ng类时它不工作。我做错了什么


我遵循了这里的主题,但没有为我处理类中的“”假设您使用的是最新的Angular2版本(您提到了typescript和ionic2),您的绑定需要是
[ngClass]=…
,而不是
ng class=

因此,您有错误的属性名称以及缺少的绑定括号

有关文档/示例,请参见此处:


根据这一点,您可能还需要在CSS类名周围加引号,尽管我不确定它们是否真的是必需的。

假设您使用的是最新的Angular2版本(您提到了typescript和ionic2),您的绑定需要是
[ngClass]=…
,而不是
ng class=

因此,您有错误的属性名称以及缺少的绑定括号

有关文档/示例,请参见此处:


根据这一点,您可能还需要在CSS类名周围加引号,尽管我不确定它们是否真的是必需的。

请为您正在使用的Angular版本使用正确的标记
angularjs
用于angularjs 1.x
angular2
用于angular2。请使用正确的标签来标记您正在使用的Angular版本
angularjs
用于angularjs 1.x<代码>角度2用于角度2。
facebook = {
"selected" : false,
"type" : "Facebook"
}

twitter = {
"selected" : false,
"type" : "Twitter"
}
...
... 
    addSocial(type){
    // reinit all to selected false
    for(var i in this.all){
      this.all[i].selected = false;
    }
    switch(type) {
      case "Facebook":
      this.facebook.selected = true;
      break;
      case "Twitter":
      this.twitter.selected = true;
      break;
      case "Instagram":
      this.insta.selected = true;
      break;
      case "LinkedIn":
      this.linkedin.selected = true;
      break;
      case "Github":
      this.github.selected = true;
      break;
    }
    this.atLeastOneSelected = true;
    this.currentSocial = type;
    console.log(JSON.stringify(this.all));
  }