【问题标题】:Angular/Ionic NG-Class isnt doing anythingAngular/Ionic NGClass 没有做任何事情
【发布时间】:2017-12-08 18:15:18
【问题描述】:

我有一个问题:
我是 ionic/angular 新手,我无法让 ng-class 工作

<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>
(click)="playerClick(x,y,z)"

在我的服务中被调用,所以我不应该成为任何 ng-model 的任务,对吗?
我的意思是 {{(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 样式和控制台日志调用服务内部的函数,以测试它是否被调用但没有。
示例:&lt;span class="ctr" ng-style="{'color':getTileColor(tile)}"&gt;{{(tile==0)? ' ': ((tile==1)? 'x' : 'o')}}&lt;/span&gt;


此外,如果 x%3 == 0,我想强制一个新行 我在想类似的东西(但它不起作用):

<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>

^ 我把 ion-row 放在第一个 nGFor 里面

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

ROWS how it is
ROWS how it should be

【问题讨论】:

  • 嗨,欢迎来到 SO。请花点时间研究一下以改进和格式化您的问题:stackoverflow.com/help/how-to-ask
  • @AhammadaliPK 我该怎么做?这个项目需要离子吗?

标签: css angular ionic2


【解决方案1】:

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

ng-styleng-class 是 Angular 1 语法

在 Angular 2 及以上版本中,调用这些指令的正确方法是:

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

链接到docs

【讨论】:

  • ...我太笨了..谢谢!我之前使用过 ionic 1 你知道如何修复行的东西吗?你会使用另一个网格系统吗?
  • 我看到你也打错了 ng-if,应该是 *ngIf="condition",你甚至在结束标签 上有一个 ng-if 这是不必要的.尝试修复这些
  • i 每次关闭离子行 x%3==0 && x!=0 否则它不起作用,但如果我使用 *ngIf="x%3==0 && x!=0"> 它崩溃了,如果我只是使用 作为结束标记它不会崩溃但是它没有做它应该做的事情
猜你喜欢
  • 1970-01-01
  • 2012-09-07
  • 2016-10-02
  • 2013-09-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多