Ng-disabledを使用していますが、気に入っています。入力とボタンに関しては、私にとってはうまく機能しています。アンカータグが機能しない場合。どうすれば修正できますか?
HTML code
<a ng-disabled="addInviteesDisabled()">Add</a>
JS code
$scope.addInviteesDisabled = function() {
return $scope.event.status === APP_CONSTANTS.STATUSES.PENDING_APPROVAL;
};
ハイパーリンクの無効な属性はありません。あなたはこれを行うことができます:
.disabled {
cursor: not-allowed;
}
<a ng-click="disabled()" ng-class="{disabled: addInviteesDisabled()}">Add</a>
$scope.disabled = function() {
if($scope.addInviteesDisabled) { return false;}
}
linkDisabled
cssクラスを作成して、アンカーに適用できます。
<style>
.linkDisabled {
cursor: not-allowed;
pointer-events: none;
color: grey;
}
</style>
CSSを介してこれを行うことができます。派手なディレクティブは必要ありません。 ng-classを使用して、次のようなクラスを適用します。
ng-class:
ng-class="{disabledLink: disabledFunction()}"
css:
.disabledLink {
color: #ccc;
pointer-events:none;
}
完全なクレジット-
ng-disabled
を使用してアンカータグを無効にすることはできません。
フォームコントロールには無効なプロパティがありますが、アンカータグには無効なプロパティがありません。
ユーザーはフィールドセットを有効にして、リンクを無効にできます。
<input type="checkbox" ng-model="vm.iagree"> I Agree
<fieldset ng-disabled="!vm.iagree">
<a class="btn btn-primary grey" href="javascript:void(0)" ng-click="vm.Submit()">Submit</a>
</fieldset>
はい、アンカータグを無効にすることができます。そのために必要なことを確認してください。アンカーはクリック可能です。まず、クリックを無効にするためにneddします。これは、ポインターイベントによって行うことができます。そして、無効になっている使用を示すために、色のように無効にする必要のある色を変更できます:#95979A;。ここで何が起こっているのかを理解する必要がありますが、上記を追加してもアンカータグのクリックイベントは無効になりません。それを止めるには、ng-disabledを追加する必要があります。これは、disabeld = disabledとして属性イベントを追加します。a[disabled]を使用してそれをキャッチする必要があります。
最終コード:a [disabled] {pointer-events:none; color:#95979A;}は、アンカータグのクリックイベントを無効にします。
これが役に立てば幸いです。ありがとう
この質問は以前に回答されました: AngularJSを使用してアンカータグを有効/無効にする
カスタムディレクティブを使用するか、代わりにボタンを使用してください。
アンカータグを直接無効にすることはできません。これを行うことができます。
コントローラーで2つのプロパティを割り当てる
public bool btndisabled { get; set; }
public string href { get; set; }
そして、コントローラー側のコードに使用します:
if (auction.btndisabled== true)
{
auction.href = "javaScript:void(0);";
}
else
{
auction.href = "/Auction/Index?id=" + auction.Auction_ID;
}
あなたの見解では:
<a href="{{item.href}}"><input type="button" class="btn btn-primary" ng-disabled="item.btndisabled" value="Update"/></a>
アンカータグに無効な属性はありません。アンカータグに「無効」クラスを使用しました。
$scope.data = {name:dinesh}
<a ng-click="get_data()" ng-class="{disabled: data}">Add</a>
最良の方法は、無効化された条件をアンカーの機能に追加することです。したがって、これらの関数は、無効な条件がチェックされて渡された場合にのみ実行されます。
$scope.next_kh_resource = function(){
if ($scope.selected_kh_index < ($scope.selected_step.step_kh_resources.length -1)){
var next = $scope.selected_kh_index + 1;
$scope.selected_kh_index = $scope.selected_kh_index +1;
$scope.selected_kh_resource = $scope.selected_step.step_kh_resources[next];
}
}
$scope.prev_kh_resource = function(){
if ($scope.selected_kh_index > 0){
var prev = $scope.selected_kh_index -1;
$scope.selected_kh_index = prev;
$scope.selected_kh_resource = $scope.selected_step.step_kh_resources[prev];
}
}
上記の例では、無効化された条件を関数に挿入することにより、nextおよびprevのページネーションアンカーを無効にしました。 ユーザーは賢いです。 彼らはすぐにその終了ページを学習し、次をクリックできますが、何も起こりません
ナビゲーションボタンの操作で同じ問題が発生しました。この回避策は私のプロジェクトに適したソリューションでした。
<a href="{{nextItem ? '/the-link/i-want-to-use' : '#'}}" ng-class="{'iamDisabled':!nextItem}">Some link text</a>
基本的に、次のボタンと前のボタンの2つのボタン(リンクタグで作成)があります。 2つの$scope
変数、nextItem
およびprevItem
があり、各ボタンに1つずつあります。そのため、次(または前)がない場合、タグのスタイルは適切に設定されます(そのため、無効になっています)。
nextItem
がnullでない場合、href
はhref="/the-link/i-want-to-use"
にレンダリングされ、nullの場合、hrefはhref="#"
になります。
ng-Disabled
がtrue
に評価されると、通常は入力またはその他のフォームコントロールである要素にdisabled
属性を設定します。 <a>
タグにはdisabled
属性がないため、設定されません。リンクのng-disabled
をtrue
に設定してみてください。自分で確認できます。
多分これが役立つでしょう: ng-disabled And Anchor Tags Oh Noes!