淘汰赛JS:条件开关案例

Jeya Suriya Muthumari

我当前的任务是,如果要切换大小写(或像多个if大小写一样)以检查两个以上条件,则替换有条件的js。方案是,如果用户通过了身份验证,则切换图标应显示为绿色,而对于未通过身份验证的用户,切换图标应为灰色。下面是我在这里所说的方案的代码,IsAuthenticatedUser()是一个布尔值,始终为true或false。现在,我必须将bool(0 1)的值更改为flag(0 1 2 3)的值。

Bool representation is, 
0 - Not Authenticated - grey icon
1 - Authenticated - green icon

Flag Value
0 - Not Authenticated - grey icon
1 - Authenticated - green icon
2 - Authenticated but expired - no icon
3 - Authenticated but not yet license period started - no icon

对于布尔值,Knockout JS条件分离就像

<!-- ko if: IsAuthenticatedUser() -->
<i class="fa fa-toggle-on faIcons green" title="Active"
   data-bind="click: function (data, event) { $parent.functiongoeshere }"></i>
<!-- /ko -->

<!-- ko if: !IsNotAuthenticatedUser() -->
<i class="fa fa-toggle-on faIcons fa-rotate-180 toggleOff" title="Inactive"
   data-bind="click: function (data, event) { $parent.functiongoeshere }"></i>
<!-- /ko -->

对于Flag值,我必须执行以下操作,

<!-- ko if: UserFlag == 1 -->
<i class="fa fa-toggle-on faIcons green" title="Active"
   data-bind="click: function (data, event) { $parent.functiongoeshere }"></i>
<!-- /ko -->

<!-- ko if: UserFlag == 0 -->
<i class="fa fa-toggle-on faIcons fa-rotate-180 toggleOff" title="Inactive"
   data-bind="click: function (data, event) { $parent.functiongoeshere }"></i>
<!-- /ko -->

<!-- ko if: UserFlag == 2 -->
<!-- No ICON -->
<!-- /ko -->

<!-- ko if: UserFlag == 2 -->
<!-- No ICON -->
<!-- /ko -->

但这是行不通的,因此如果要进行多重条件检查,或者我们如何通过用户切换控件来处理这种情况,还有另一种方法可以使用。

任何建议都会有所帮助。

Brianlmerritt

ko if: UserFlag应该可以使用,尽管我会将其更改为userFlag,并且您可能需要将其设置为ko if: userFlag()

另外,为什么不简化它并创建一个getAuthClass()函数,绑定元素属性并计算viewModel中的所有图标呢?

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章