Angular / Ionic NG-Class没有做任何事情

时间:2017-07-05 07:50:21

标签: css angular ionic2

我有一个问题: 我是离子/角度的新手,我不能进行ng级工作



<ion-content padding>
  <ion-grid>
    <ion-row>
      <ion-col>
        <ion-row>
          <ion-col *ngFor="let field1 of gs.fields; let x = index; trackBy: trackByFn">
            <!-- new row if x % 3 == 0 -->
            <ion-col *ngFor="let field2 of field1; let y = index; trackBy: trackByFn">
              <ion-row>
                <ion-col class="ctr fc tile" *ngFor="let tile of field2; let z = index; trackBy: trackByFn" (click)="playerClick(x,y,z)">
                  <span class="ctr" ng-class="{'player1': tile==1, 'player2' : tile==2}">{{(tile==0)? ' ': ((tile==1)? 'x' : 'o')}}</span>
                </ion-col>
              </ion-row>
            </ion-col>
          </ion-col>
        </ion-row>
      </ion-col>
    </ion-row>
  </ion-grid>
</ion-content>
&#13;
&#13;
&#13;

(click)="playerClick(x,y,z)"

在我的服务中被调用,所以我不应该使用任何ng模型吗?我的意思是{{(tile==0)? ' ': ((tile==1)? 'x' : 'o')}}正在工作,所以Angular应该让每个变量使用正确的吗?

它在浏览器中的显示方式:

<ion-col class="ctr fc tile col">
<span class="ctr" ng-class="{'player1': tile==1, 'player2' : tile==2}">x</span>
</ion-col>


我还尝试在函数内部调用ng-style和console log中的函数来测试它是否被调用但是它不是。
示例:<span class="ctr" ng-style="{'color':getTileColor(tile)}">{{(tile==0)? ' ': ((tile==1)? 'x' : 'o')}}</span>


此外,如果x%3 == 0,我想强制换行 我想的是(但它不起作用):

&#13;
&#13;
<ion-content padding>
  <ion-grid>
    <ion-row>
      <ion-col>
        <ion-col *ngFor="let field1 of gs.fields; let x = index; trackBy: trackByFn">
          <ion-row ng-if "x % 3 == 0">
            <!-- new row if  -->
            <ion-col *ngFor="let field2 of field1; let y = index; trackBy: trackByFn">
              <ion-row>
                <ion-col class="ctr fc tile" *ngFor="let tile of field2; let z = index; trackBy: trackByFn" (click)="playerClick(x,y,z)">
                  <span class="ctr" ng-class="{'player1': tile==1, 'player2' : tile==2}">{{(tile==0)? ' ': ((tile==1)? 'x' : 'o')}}</span>
                </ion-col>
              </ion-row>
            </ion-col>
          </ion-row ng-if "x % 3 == 0">
        </ion-col>
      </ion-col>
    </ion-row>
  </ion-grid>
</ion-content>
&#13;
&#13;
&#13;

^我把离子行放在第一个nGFor里面

<ion-row ng-if "x % 3 == 0">

ROWS how it is
ROWS how it should be

1 个答案:

答案 0 :(得分:4)

我认为你将角度1与角度2混淆。

ng-styleng-class是角度1语法

在角度2及以上调用这些指令的正确方法是:

[ngClass]="{'player1': tile==1, 'player2' : tile==2}"
[ngStyle]="{'font-size': fontSize+'px'}"

链接到docs