web-dev-qa-db-ja.com

angular jsマテリアルデザインで入力フィールドを動的に有効または無効にする方法

Ng-disableに問題があります。 angularマテリアルを使用しているため、これは機能していないと思います。入力ボックスを条件に基づいて動的に無効または有効にしたいです。

注:-複数の入力フィールドがあり、一度にすべてを無効または有効にします。

私はこのようにしようとしています

<md-input-container class="md-block" flex-gt-sm>
    <label for="Autocomplete">From</label>
    <input required type="text" class = "hideShadow" ng-model="FromLocation"
           uib-typeahead="state for state in states | filter:$viewValue | limitTo:8" 
          class="form-control" ng-disabled="isDisabled">
    <div ng-messages="searchFlight.FromLocation.$error">
    <div ng-message="required">Please enter from location</div>
     </div>
</md-input-container>

このように動的にng-disabled="isDisabled"にアクセスしようとしています

$scope.isDisabled = true;

しかし、これは機能していません。どこが間違っているのかわかりますか?

6
Hemanth Paluri

問題は、プロパティisDisabledをバインドした方法にあると思います。

これを試して:

$scope.model = {
    isDisabled: true
};

次に:

ng-disabled="model.isDisabled"

この問題は、ディレクティブのプリミティブプロパティをバインドしようとしたときに発生します。適切に機能させるには、オブジェクトの属性をバインドする必要があります。

8
Fernando Soares

Ng-disabledを使用してフィールドを有効または無効にできます

たとえば、最初にボタンを無効にし、何かを実行した後にボタンを有効にする場合、

<button class="btn btn-default" type="submit" ng-disabled="isDisabled" ng-click="ok()">OK</button>

$scope.isDisabled = true;

$scope.save = function(){
//after completing the operation set the values of variable to false
$scope.isDisabled = false;
}
1
meenal