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

在Angular指令模板中有条件地添加数据属性

宋和颂
2023-03-14
问题内容

我正在为指令模板。如果范围内的属性设置为true,data- toggle="dropdown"则应将其附加到元素。如果变量为false,则此数据属性不应呈现为元素的属性。

例如,如果scope变量为true,则模板应呈现:

<span data-toggle="dropdown"></span>

如果为false,则模板应呈现:

<span></span>

模板将如何完成此任务?

例如,我知道可以ng-class用来有条件地包含一个类。如果我希望模板呈现此内容:

<span class="dropdown"></span>

然后我的模板如下所示:

"<span ng-class="{ 'dropdown': isDropDown }"></span>

如果scope变量isDropDownfalse,则模板将简单地呈现:

<span></span>

因此,模板中有一种方法可以有条件地添加class="dropdown"。有没有模板的语法,可以让我有条件地添加data- toggle="dropdown"

我为模板尝试过的一件事是:

"<span data-toggle="{ 'dropdown': isDropDown }"></span>

我对上述模板的想法是,如果scope变量isDropDown为true,则将value data-toggle设置为“
dropdown”。如果isDropDown为false,则的值data-toggle将只是一个空字符串""。但这似乎不起作用。


问题答案:

我认为一种好方法是在ng-attr-要评估的表达式后使用。在您的情况下,它将类似于:

<span ng-attr-data-toggle="{{ isValueTrue ? 'toggle' : 'notToggle' }}"></span>

这是一个[fiddle](http://jsfiddle.net/gleezer/sCC72/2/)例子。



 类似资料:
  • 问题内容: 如何有条件地添加一个元素属性,例如复选框的? 我认为以前的Angular版本具有并且似乎都提供了我所追求的功能。但是,这些属性在Angular 2中似乎不存在,我看不到提供此功能的其他方法。 问题答案: 删除它: 要么 暗示: 属性与属性 当您在其中添加此绑定的HTML元素不具有该绑定中使用的名称的属性(在这种情况下),并且也没有将Angular组件或指令应用于具有的同一元素时,则无法

  • 如何有条件地添加元素属性,例如复选框的? Angular以前的版本有< code>NgAttr和我认为< code>NgChecked,它们似乎都提供了我所追求的功能。然而,这些属性在Angular 2中似乎并不存在,我也看不出有其他方法可以提供这种功能。

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

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

  • 本文向大家介绍Angular 2 组件是带有模板的指令,包括了Angular 2 组件是带有模板的指令的使用技巧和注意事项,需要的朋友参考一下 示例            

  • 问题内容: 我想知道如何使用此代码段: 我知道这是关于编译阶段的,但是我不明白这一点,所以简短的解释将是非常感谢。 问题答案: 将另一个指令添加到同一元素的指令: 类似答案: 这是一个小矮人:http ://plnkr.co/edit/ziU8d826WF6SwQllHHQq?p=preview 更清洁的解决方案-完全不使用: 矮人:http ://plnkr.co/edit/jY10enUVm3