2017-12-26 5 views
0

他のボタン( "B"ボタン)がフォームにない場合、ボタンを隠すことができるjQueryまたはJavaScriptまたはCSSのイベントが必要です。無効にされ、オポジト。 「B」ボタンが有効になっているときに「A」ボタンを表示します。他のボタンが無効になっているときにボタンイベントを非表示にする

「B」ボタンには角度のコードがありますが、$scopeにはアクセスできません。

<div ng-if="something" class="steps-pager ng-scope"> 
    <!-- More stuff --> 
    <a href="" ng-click="goTo()" class="next" title="next step" tabindex="0" ng-class="{hidden:disableButton}">next</a> 
</div> 

私は(分析テストソフトウェアを使用)正面側に働いていると私は、「B」ボタンが状態を有効または無効にすることをトリガする必要があり、すべての要素が何であるかを知りません。それはクリックすることができます、また、検証やその他のものにすることができます。

私は変更イベントでテストしようとしましたが、入力要素に対してのみ動作します。私は$範囲を取得しようとしましたが、保護されているようです。私は$ Scopeへのアクセス権がありません。間隔は仕事になるかもしれませんが、このウェブサイトが巨大なプロセスの各ステップに間隔を置くためには重くなります。

+0

は、あなたがこれまでにしようとしているものを共有してくださいされています。 –

+0

あなたの質問には明確化が必要だと思います。あなたは2つのボタンについて話していますが、あなたのコードにはありません。もっと情報を追加できますか? –

+0

こんにちは、その情報で投稿を更新します。ありがとう – Noark

答えて

1

AngularJsでng-hideng-disabledを使用すると、上記のシナリオを達成できます。

スコープオブジェクトをtrueに設定すると、ng-disabledの値を他のフォーム検証結果と常に動的に割り当てることができます。以下は

作業DEMO

(function(angular) { 
 
    'use strict'; 
 
    angular.module('app', []) 
 
    .controller('Ctrl', ['$scope', function($scope) { 
 

 
     $scope.disableA = false; 
 
     $scope.disableB = false; 
 
     $scope.disable = function() { 
 
     
 
     $scope.disableB = $scope.disableA ? false:true; 
 
     }; 
 
    }]); 
 
})(window.angular);
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> 
 

 
<body ng-app="app"> 
 
    <div ng-controller="Ctrl"> 
 

 
    <button ng-click="" ng-hide="disableB" ng-disabled="disableA">Button A</button> 
 

 
    <button ng-click="" ng-hide="disableA" ng-disabled="disableB">Button B</button> 
 

 
    <button ng-click="disable()" ng-hide="">Disable B</button> 
 

 
    </div> 
 
</body>

+1

パーフェクト!それは動作します!ありがとう – Noark

関連する問題