我m developing angular app for football scores,
I get the scores and if it
s -1:-1,表示游戏尚未播放。
当我进行检查时,我遇到了问题,如果弄糟了我的模板,它仍会输出值,但它会在不应该的地方执行
这是代码
<div ng-repeat="day in days">
<div class="title-link">{{day | date:'EEEE, MMMM d, y'}} </div>
{{game.homeTeamName}}
<div ng-if="game.result.goalsHomeTeam != '-1'">
{{game.result.goalsHomeTeam}}
</div>
:
<div ng-if="game.result.goalsAwayTeam != '-1'">
{{game.result.goalsAwayTeam}}
</div>
{{game.awayTeamName}}
答案 0 :(得分:0)
我认为你应该正确解决这个问题。
首先,看起来好像你将布尔值保持为一个内容为'-1'的字符串。
这样想。如果我问你“游戏是否播放?”你回答说“冲一个!”那会有意义吗?
不,它不会,因为您提出的问题应该得到是/否或真/假响应。
因此,首先,您应该记录游戏是否以布尔值播放,评估为真假。如果你愿意的话,你可以通过$观察分数来做到这一点,然后继续将这个与分数无关的值存储为自己的值。
这可能会解决您的所有问题,因为ng-show / hide / if无论如何都要评估为true / false。
其次,ng-if文档声明:
请注意,使用ngIf删除元素时,其范围将被销毁,并且在还原元素时会创建新范围。在ngIf中创建的作用域使用原型继承从其父作用域继承。这一点的一个重要含义是,如果在ngIf中使用ngModel绑定到父作用域中定义的javascript原语。在这种情况下,对子作用域内的变量所做的任何修改都将覆盖(隐藏)父作用域中的值。
如果没有真正看到你的代码,很难说,但我认为可能导致你的问题的是ng-if指令的范围行为。
如果你有一个jsfiddle或想要屏幕分享,我很乐意帮你调试并解释它。
P.S。这是ng-if的源代码。值得一看的是了解实际情况。
https://github.com/angular/angular.js/blob/master/src/ng/directive/ngIf.js#L3
p.p.s了解childScope / prototypal inheritance。
https://github.com/angular/angular.js/wiki/Understanding-Scopes#javascript-prototypal-inheritance
答案 1 :(得分:0)
你有一个强制转换问题 -1和'-1'你可以使用parseInt
来解决这个问题。