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

如何在AngularJS中有条件地应用CSS样式?

李锦
2023-03-14
问题内容

Q1。假设我想在按下主“删除”按钮之前更改用户标记为要删除的每个“项目”的外观。(这种立即的视觉反馈应该消除了众所周知的“您确定吗?”对话框的需要。)用户将选中复选框以指示应删除哪些项目。如果未选中此复选框,则该项目应恢复为正常外观。

应用或删除CSS样式的最佳方法是什么?

Q2。假设我想允许每个用户个性化展示我的网站。例如,从一组固定的字体大小中进行选择,允许用户定义前景色和背景色等。

应用用户选择/输入的CSS样式的最佳方法是什么?


问题答案:

Angular提供了许多内置指令,用于有条件/动态地处理CSS样式:

  • ng-class -CSS样式集为静态/提前知道时使用
    ng-style-在您无法定义CSS类时使用,因为样式值可能会动态更改。考虑样式值的可编程控制。

    ng-show和 ng-hide-仅在需要显示或隐藏某些东西时使用(修改CSS)
    ng-if -1.1.5版中的新功能,如果您只需要检查一个条件(修改DOM),请使用ng-switch代替更详细的ng-switch
    ng-switch-使用而不是使用几个互斥的ng-show(修改DOM)
    ng-disabled和 ng-readonly-用于限制表单元素的行为
    ng-animate -1.1.4版中的新功能,用于添加CSS3过渡/动画

正常的“角度方式”涉及将模型/范围属性绑定到将接受用户输入/操作(即使用ng-model)的UI元素,然后将该模型属性与上述内置html" target="_blank">指令之一相关联。

当用户更改UI时,Angular将自动更新页面上的关联元素。

对于ng-class来说,Q1听起来很不错-CSS样式可以在一个类中捕获。

ng-class 接受的“表达式”必须计算为以下值之一:

  1. 一串用空格分隔的类名
  2. 类名数组
  3. 类名到布尔值的映射/对象

假设您的商品是使用ng-repeat在某些数组模型上显示的,并且选中了商品的复选框后,您想应用pending-delete该类:

<div ng-repeat="item in items" ng-class="{'pending-delete': item.checked}">
   ... HTML to display the item ...
   <input type="checkbox" ng-model="item.checked">
</div>

上面,我们使用ng-class表达式类型#3-类名的映射/对象为布尔值。

Q2听起来很适合ng样式-CSS样式是动态的,因此我们不能为此定义一个类。

ng-style 接受必须计算为以下内容的“表达式”:

  1. CSS样式名称到CSS值的映射/对象

对于一个人为的示例,假设用户可以在texbox中输入背景名称的颜色名称(jQuery颜色选择器会更好):

<div class="main-body" ng-style="{color: myColor}">
   ...
   <input type="text" ng-model="myColor" placeholder="enter a color name">

小提琴还包含 ng-showng-hide的示例。如果选中此复选框,则除了背景颜色变为粉红色外,还会显示一些文本。如果在文本框中输入“红色”,则div将被隐藏。



 类似资料:
  • 在html: 在cmsText.js中 在cmsText.html 我希望输入标签中的“必需”字仅在设置为true时显示,在设置为false时该字消失。有人能帮忙吗?

  • 问题内容: 我正在尝试使用angular js将css动态添加到我的html头中。这是示例代码 此代码可以正常工作,但是当浏览器加载页面时,它尝试使用原始的angularjs模板获取CSS资源,并且在Firebug的网络标签中看到“ 404 not found error”。 页面完全加载后,它将替换模板值并加载适当的CSS。 有没有一种方法可以避免404错误并在angularjs处理后使其加载C

  • 问题内容: 假设我们正在使用AngularJS构建通讯簿应用程序(设计示例)。 我们有一个联系人表单,其中包含电子邮件和电话号码的输入,我们想要 一个或另一个 ,但 不能同时 要求 两个 :我们只希望输入为空或无效的情况下才需要输入,反之亦然。 Angular有一个指令,但是从文档中尚不清楚在这种情况下如何使用它。那么,我们如何有条件地需要一个表单字段呢?编写自定义指令? 问题答案: 无需编写自定

  • 假设我们正在用AngularJS构建一个地址簿应用程序(人为的例子)。 我们有一个联系人表单,其中包含电子邮件和电话号码的输入,我们需要其中一个,但不是两者都需要:我们只希望在电话输入为空或无效时需要电子邮件输入,反之亦然。 Angular有一个指令,但文档中不清楚如何在这种情况下使用它。那么,我们如何有条件地要求表单字段呢?编写自定义指令?

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

  • 问题内容: 我正在使用“可拖动”指令来支持图像拖动。但是,根据用户的角色,我需要为某些用户组禁用图像拖动。我使用了以下代码。 该方法在模板范围内,并返回或。我不想为所返回的每个值创建两个大的重复元素。换句话说,我不是在寻找以下方法来解决此问题。 还有其他方法可以避免代码重复吗? 问题答案: Angular包含对有条件声明HTML属性的支持,作为动态标题指令。 的官方文件 例 在您的情况下,代码可能