仅当锚点aria-current
等于当前窗口路径时,我才会尝试在锚点中创建href
属性。基本上,我希望aria-current="page"
如果有问题的锚点href
等于视图路径中的窗口。如果相关锚点的aria-current
与视图路径中的窗口不相等,我也不想创建href
属性。
有没有办法编写一个内联的条件语句,它将在AngularJS(Angular1)中创建或不创建属性?
答案 0 :(得分:1)
我认为没有“内联方式”可以做到这一点,但是对于这种情况你可以创建一个指令
这里有一个例子:
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>
请注意:此代码未经测试,但它应该向您提前几步。
对于要在角度应用程序中修改DOM的每种情况,您都应该创建一个指令。阅读更多关于指令的信息: https://docs.angularjs.org/guide/directive
答案 1 :(得分:0)
解决方案:使用ng-attr
有条件地创建内联属性。
例如<div ng-attr-alt="{{<conditional statement> ? '<value to set attr to if true>' : undefined }}"
如果条件语句的计算结果为true,则不会创建该属性,未定义的值会设置该值。