微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

我正在一个指令的模板。如果范围中的属性设置为true,那么应该将data-toggle =“dropdown”附加到元素。如果变量为false,则此数据属性不应作为元素的属性呈现。

例如,如果范围变量为true,模板应呈现:

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

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

<span></span>

模板是什么样子来完成这个?

例如,我知道我可以使用ng-class有条件地包含一个类。如果我想让模板呈现这:

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

然后我的模板将如下所示:

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

如果范围变量isDropDown为false,那么模板将简单地渲染:

<span></span>

所以在模板中有一种方式有条件地添加一个class =“dropdown”。有模板的语法,允许我有条件地添加data-toggle =“dropdown”?

我为模板尝试的事情之一是:

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

我认为上面的模板是,如果范围变量isDropDown为true,data-toggle的值将被设置为“下拉”。如果isDropDown为false,那么data-toggle的值将只是一个空字符串“”。这似乎不工作,虽然。

我认为一个好的方法是使用ng-attr-后跟你想要评估的表达式。
在你的情况下,它会像:
<span ng-attr-data-toggle="{{ isValueTrue ? 'toggle' : 'nottoggle' }}"></span>

这里有一个fiddle的例子。

原文地址:https://www.jb51.cc/angularjs/146247.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐