Q1。假设我想在按下主“删除”按钮之前更改用户标记为删除的每个“项目”的外观。(这种即时的视觉反馈应该消除对众所周知的“你确定吗?”对话框的需要。)用户将选中复选框以指示应该删除哪些项目。如果未选中复选框,则该项目应恢复为其正常外观。
应用或删除 CSS 样式的最佳方法是什么?
Q2。假设我想让每个用户个性化我的网站的呈现方式。例如,从一组固定的字体大小中选择,允许用户定义前景色和背景色等。
应用用户选择/输入的 CSS 样式的最佳方式是什么?
Angular 提供了许多用于有条件/动态地操作 CSS 样式的内置指令:
正常的“Angular 方式”包括将模型/范围属性绑定到将接受用户输入/操作的 UI 元素(即使用 ng- model),然后将该模型属性与上述内置指令之一相关联。
当用户更改 UI 时,Angular 会自动更新页面上的相关元素。
Q1 听起来像是 ng-class 的一个很好的案例——CSS 样式可以在一个类中捕获。
ng-class 接受一个“表达式”,它必须计算为以下之一:
假设使用某些阵列模型使用NG-Repeat显示您的项目,并且当检查项目的复选框时,要应用此类pending-delete:
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-style 的一个很好的案例——CSS 样式是动态的,所以我们不能为此定义一个类。
ng-style 接受一个“表达式”,它必须计算为:
对于一个人为的例子,假设用户可以在背景颜色的 texbox 中输入颜色名称(jQuery 颜色选择器会更好):
<div class="main-body" ng-style="{color: myColor}"> ... <input type="text" ng-model="myColor" placeholder="enter a color name">
为上述两个 jsfiddle
小提琴还包含 ng-show 和 ng-hide 的示例。如果选中复选框,除了背景颜色变为粉红色外,还会显示一些文本。如果在文本框中输入“红色”,则隐藏 div。