当前位置: 首页 > 面试题库 >

有条件申请课程的最佳方法是什么?

郤坚诚
2023-03-14
问题内容

假设您有一个呈现为的数组,ul其中li每个元素都有一个,控制器上有个名为的属性selectedIndexliselectedIndexAngularJS中的索引向类添加类的最佳方法是什么?

我目前正在(手动)复制li代码并将类添加到li标签之一中,并使用ng-showng-hide仅显示li每个索引一个。


问题答案:

如果您不想像我一样将CSS类名放入Controller中,这是自v1之前的日子开始使用的古老技巧。我们可以编写一个表达式,该表达式直接计算为 所选
的类名,不需要自定义指令:

ng:class="{true:'selected', false:''}[$index==selectedIndex]"

请注意带有冒号的旧语法。

还有一种更好的新方法可以有条件地应用类,例如:

ng-class="{selected: $index==selectedIndex}"

Angular现在支持返回对象的表达式。现在将此对象的每个属性(名称)都视为类名,并根据其值来应用。

但是,这些方式在功能上并不相同。这是一个例子:

ng-class="{admin:'enabled', moderator:'disabled', '':'hidden'}[user.role]"

因此,我们可以通过将模型属性基本上映射到类名称来重用现有的CSS类,同时将CSS类保留在Controller代码之外。



 类似资料:
  • 问题内容: 我需要能够根据作用域上的布尔变量向元素添加例如“ contenteditable”。 使用示例: 如果设置为,将导致contenteditable = true被添加到元素。有一些简单的方法可以实现这种ng- class这样的属性行为吗?我正在考虑编写指令,如果没有,请共享。 编辑: 我可以看到我提议的attrs指令和ng-bind- attrs 之间似乎有些相似之处,但是在1.0.0

  • 问题内容: 我有一个不完整的csv文件,需要准确更新,因此有这样的csv文件: 自然地,文件要复杂得多,但是以这种格式,这是我要在7到8(或任何范围)之间插入或n个单词的内容。我怎样才能做到这一点? 伪代码,代码或示例都很好,我不知道如何开始。 更新: 也许我应该将其转换为数组或某种数据结构。然后,在特定位置插入新项目,将其余内容右移,并在每次插入时执行该操作。 我不知道是否正确的方法或如何开始对

  • 问题内容: 是什么使应用程序功能的模块/服务/位成为OSGi模块的特别好的候选者? 我对在我的应用程序中使用OSGi感兴趣。我们是一家Java商店,我们广泛使用Spring,因此我倾向于将Spring动态模块用于OSGi(tm)服务平台。我正在寻找一种将OSGi一点点集成到应用程序中作为试用的好方法。这里有人使用过此技术或类似的OSGi技术吗?有陷阱吗? @Nicolas-谢谢,我已经看过那个了。

  • 问题内容: 我有一个方法可以执行一些超时任务。我使用ExecutorServer.submit()获取Future对象,然后使用超时调用future.get()。这工作正常,但是我的问题是处理可能由我的任务引发的检查异常的最佳方法。以下代码可以正常工作,并保留检查的异常,但是如果方法签名中的检查的异常列表发生更改,则显得非常笨拙且容易中断。 对于如何解决这个问题,有任何的建议吗?我需要以Java

  • 问题内容: Java是我选择的编程语言之一。尽管将应用程序分发给最终用户,但我总是遇到问题。 为用户提供JAR并不总是像我想要的那样友好,并且使用Java WebStart要求我维护Web服务器。 分发Java应用程序的最佳方法是什么?如果Java应用程序需要在用户计算机上安装工件,该怎么办?有没有好的Java安装/打包系统? 问题答案: 有多种解决方案,取决于你的发行要求。 只是用一个jar。这

  • 这并不困难,但它让我质疑spring auth服务器是最好的选择,还是我应该使用Keycloak?