我试图将ng-class与条件一起使用,如下所示:
<li ng-repeat="time in matter.times_hourly | filter:searchText" ng-class="{'time.write_off_class' : time.write_off === true, 'time.narrativeState' : time.write_off === false}" >
time.write_off_class
里面有两个类,名为&#34; write_off_bg time_closed
&#34;。
time.narrativestate
里面有一个名为&#34; time_closed
&#34;
time.write_off
是一个布尔值。
所以,我认为我的问题是引号。
我不确定把它们放在哪里,所以我尽力了:
有条件的报价:
`ng-class="{time.write_off_class : 'time.write_off === true', time.narrativeState : 'time.write_off === false'}"`
结果:角度错误。
`angular.min.js:107 `Error: [$parse:syntax] http://errors.angularjs.org/1.4.5/$parse/syntax?p0=.&p1=is%20unexpected%2C%…20%3D%3D%20true'%2C%20time.narrativeState%20%3A%20'time.write_off%20%3D%3DNaNalse'%7D&p4=.write_off_class%20%3A%20'time.write_off%20%3D%3D%20true'%2C%20time.narrativeState%20%3A%20'time.write_off%20%3D%3D%false'%7D
ng-class="{time.write_off_class : time.write_off === true, time.narrativeState : time.write_off === false}"
结果:角度误差。
angular.min.js:107 Error: [$parse:syntax] http://errors.angularjs.org/1.4.5/$parse/syntax?p0=.&p1=is%20unexpected%2C%…f%20%3D%3D%20true%2C%20time.narrativeState%20%3A%20time.write_off%20%3D%3DNaNalse%7D&p4=.write_off_class%20%3A%20time.write_off%20%3D%3D%20true%2C%20time.narrativeState%20%3A%20time.write_off%20%3D%3D%false%7D
所有内容的报价(课程和条件):
ng-class="{'time.write_off_class' : 'time.write_off === true', 'time.narrativeState' : 'time.write_off === false'}
结果:没有错误,但元素同时获得了类,write_off_class和narrativeState。
关于课程的报价:
ng-class="{'time.write_off_class' : time.write_off === true, 'time.narrativeState' : time.write_off === false}
结果:没有错误,显然元素得到了正确的类(在这种情况下,叙述状态,因为在代码的开头所有time.write_off都设置为FALSE)但是元素没有样式。如果我只把ng-class =&#34; time.narrativeState&#34;一切都还可以,但如果它通过ng-class,那么它就无法正常工作。
我做错了什么?是否有任何理由要求元素在'time.narrativeState'
条件下没有样式,即使我确定它自己有效?
我一直在尝试更多的事情,我知道现在的主要问题在哪里,仍然无法解决。
我的目标&#39;时间&#39;我有两个字段用于为某些元素提供样式类。 &#34; time.narrativeState&#34;例如,有一个&#34; time_closed&#34;在它上面。
问题在于,当我写ng-class="time.narrativeState"
并且我去看元素的风格时,我可以看到&#34; time_closed&#34;但是,如果我使用我在这个问题中讨论的条件ng-class="{{ time.write_off ? time.write_off_class : time.narrativeState }}" >
该元素得到的样式不是&#34; time_closed&#34;它字面上是&#34; time.narrativeState&#34;因为time.narrativeState不是一个类而是一个对象的字段,所以它不会起作用。
为什么会得到&#34; time.narrativeState&#34;作为班级而且它没有在INSIDE time.narrativestate中找到正确的班级&#34; time_closed&#34; ???
答案 0 :(得分:2)
您可以在简单插值标记内使用三元运算符:
ng-class="{{ time.write_off ? time.write_off_class : time.narrativeState }}"