角度:如何禁用一个锚定标记出锚标签的数组(NG-重复)的
我有一个显示可点击组承包商,客人的名单锚标签的NG-重复:角度:如何禁用一个锚定标记出锚标签的数组(NG-重复)的
<a href="#/contact/{{ ::member.fullProfile.xpid }}" ng-click="storeRecentContact(member.fullProfile.xpid)" class=" GroupRow ListRow ListRow-Contact vmsection ng-class:{'last': $last}" ng-class-odd="'ListRowOdd'" ng-class="{'ListRowLast':$last}" data-ng-repeat="member in group.members | filter: searchFilter() | orderBy: [selectedSort.type, 'fullProfile.displayName'] track by member.xpid" droppable="Call" ng-disabled="member.contactId == myself.contactId">
由于你可以在锚标签的末尾看到,我试图禁用1个ng-repeat元素,更具体地说,是我/我自己的锚标签。
myself.contactId
和
member.contactId
将是代表我的用户定位标记相同。但是,它仍然没有禁用我点击我自己的组成员锚标记的能力。我是否正确使用ng-disabled?或者,还有另外一种方法来完成这个吗?
你无法禁用<a>
锚标记,你应该尝试一个更简单的方法,通过使用&&
支票像第一次检查member.contactId != myself.contactId
在HTML本身处理逻辑,如果它真的那么只有火storeRecentContact(member.fullProfile.xpid)
方法来做。
这里你ng-click应该看起来像ng-click="member.contactId != myself.contactId && storeRecentContact(member.fullProfile.xpid)"
现在你可以删除ng-disabled
指令,这是没有用的。
标记
<a href="#/contact/{{ ::member.fullProfile.xpid }}"
ng-click="member.contactId != myself.contactId && storeRecentContact(member.fullProfile.xpid)"
...other attributes..
.....
></a>
更新
要停止重定向你的链接到不同的页面,你可以使用ng-attr
指令,将设置一个href
标记值(您想重新定向你的SPA)通过评估{{}}
的表达。如果你想重定向到#/contact/1
那么你的href
将是href="#/contact/{{ ::member.fullProfile.xpid }}"
,否则它将只是href=""
为空白。假设您使用的条件是member.contactId
不应等于member.contactId
,如member.contactId != myself.contactId
那么您不希望用户在联系详细信息页面上重定向您的SPA。这件事将通过ng-attr-href
此{{member.contactId != myself.contactId' ? #/contact/'+ member.fullProfile.xpid: '' }}
处理会改变{{}}
表达的href
属性值对基础
<a ng-attr-href="{{member.contactId != myself.contactId' ? #/contact/'+ member.fullProfile.xpid: '' }}"
ng-click="member.contactId != myself.contactId && storeRecentContact(member.fullProfile.xpid)"
...other attributes..
.....
></a>
ng-disabled
所创建的禁用属性,它仅用于输入。
锚标记不是输入,因此无法禁用。你想要做的是改变你解决这个问题的方式。您可能想隐藏它(a
元素),您可能需要指令删除href
或将其替换为“#”或根据您的情况。
你也可以这样做:
ng-href="{{getRef(member, mySelf)}}"
,并从控制器计算此。如果你的条件是错误的,这应该正常显示,只需返回正常的链接。否则,您可以返回#
:
$scope.getRef = function(member, myself) {
if (member.contactId == myself.contactId) {
return "#";
}
else {
return "#/contact/" + member.fullProfile.xpid;
}
}
这将影响路由和结果将被SPA搞砸 –
@Omri Aharon这是导致一个JavaScript错误,因为“成员”不能被读取 - 尝试两个$ scope.member和成员在js代码.. 。 – Seeeyonnn
@Seeeyonnn尝试更新的一..他错过了通过这些参数 –
'a'tag没有禁用属性。 Ng-disabled仅适用于具有禁用属性的标签。 – Michelangelo