如何在AngularJS中有条件地创建属性

slsn1g29  于 2022-10-24  发布在  Angular
关注(0)|答案(3)|浏览(252)

仅当锚点href等于当前Windows路径时,我才尝试在锚点中创建aria-current属性。基本上,如果有问题的锚的href等于视图路径中的窗口,我想要aria-current="page"。如果所讨论的锚没有等于视图路径中的窗口的href,则我不想创建aria-current属性。
有没有一种方法可以内联编写条件语句来在AngularJS(Angular1)中创建或不创建属性?

bvhaajcl

bvhaajcl1#

我认为没有“内联方式”可以做到这一点,但对于这种情况,您可以创建一条指令
下面是一个例子:

yourmodule.directive('myexampleblabla', function() {
  return {
    link: function(scope, elem, attr) { 
        if(elem.attr('href') === windows.location.href){
            elem.attr('aria-current', true)
        }
    },
    restrict: 'E',
  };
});

Html:

<a href="sample/path#a123" myexampleblabla>Your Anchor</a>

请注意:这段代码尚未经过测试,但它应该会让您向前迈进几步。
对于想要在ANGLE应用程序中修改DOM的每种情况,都应该创建一条指令。在此处阅读有关指令的更多信息:https://docs.angularjs.org/guide/directive

nzk0hqpo

nzk0hqpo2#

解决方案:使用ng-attr有条件地创建内联属性。
例如<div ng-attr-alt="{{<conditional statement> ? '<value to set attr to if true>' : undefined }}"
如果条件语句的计算结果不为真,则不会创建该属性,未定义的值将设置该值。

z0qdvdin

z0qdvdin3#

Angularjs的解决方案
使用以下代码绑定您的标题
标题=“{{条件==真?‘非活动’:‘活动’}}”

title="{{item.IsStatus ? 'Inactive' : 'Active'}}"

相关问题