2016-08-02 12 views
1

Wie kann ich aktiviert/deaktiviert Winkel Material picker von der Steuerung Ich weiß, dass Sie die Datepicker wie diese <md-datepicker ng-model="myDate" md-placeholder="Enter date" disabled></md-datepicker> deaktiviert kann, wenn ich es tue, dass die Datumsauswahl deaktiviert erscheint und das ist gut, aber ich muss in der Lage sein, damit es wieder, nachdem der Benutzer drücken eine Option wählen, ich versuche mit ng-disable wie dieseWie aktiviert/deaktiviert Winkel Material picker von der Steuerung in AngularJS

<div class="form-group"> 
    <label>Delivery date:</label> 
     <md-datepicker ng-model="myDate" md-placeholder="Enter date" 
              md-max-date="maxDate" 
              md-min-date="minDate" 
              md-date-filter="myFilter" 
              ng-disabled="enabledDisableDate"> 
    </md-datepicker> 
</div> 

aber es hat nicht funktioniert.

Der einzige Weg, dass ich die Datepicker deaktivieren Managed ähnlichen

`<md-datepicker ng-model="myDate" md-placeholder="Enter date" disabled></md-datepicker>` 

aber ich muß in der Lage sein, um es von der Steuerung, nachdem der Benutzer drücken Sie eine Option wählt aus einer Auswahl wieder zu aktivieren.

EDIT versuchte ich ng-disabled Direktive wie ich am Beginn der Frage zeigte

in meinem Controller

$scope.myDate = new Date();  
$scope.enabledDisabledFunction = function (id) 
{ 
    $scope.enabledDisableDate = false; 
} 

aber es hat nicht funktioniert.

Ich denke, dass es ist, weil ich die Datepicker in meinem Controller wie diese $scope.myDate = new Date(); nach dem Aufruf der Funktion initialisieren, aber ich nicht sicher, ob dies das Problem

+0

Blick auf meine Antwort aktualisiert, ich habe das Arbeitsbeispiel hinzugefügt. – Antipod

Antwort

2

Verwendung ng-disabled Richtlinie sein könnte. ngDisabled

Funktioniert gut für mich, bitte geben Sie Ihren Code, vielleicht haben Sie sich etwas vertippt.

angular.module('MyApp',['ngMaterial', 'ngMessages']).controller('AppCtrl', function($scope) { 
 
    $scope.disabled = true; 
 
});
<link rel="stylesheet" href="https://material.angularjs.org/latest/angular-material.min.css"> 
 

 
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.5/angular.min.js"></script> 
 
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.5/angular-animate.min.js"></script> 
 
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.5/angular-route.min.js"></script> 
 
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.5/angular-aria.min.js"></script> 
 
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.5/angular-messages.min.js"></script> 
 
<script src="https://material.angularjs.org/latest/angular-material.min.js"></script> 
 

 
<div ng-controller="AppCtrl" style="padding: 40px;" ng-cloak="" class="datepickerdemoBasicUsage" ng-app="MyApp"> 
 
    <label> 
 
    <input type="checkbox" ng-model="disabled" /> Disabled 
 
    </label> 
 
    <hr /> 
 
    <md-datepicker ng-model="myDate" md-placeholder="Enter date" ng-disabled="disabled"></md-datepicker> 
 
</div>

+0

Ich habe meine Frage bearbeitet, aber es funktioniert immer noch nicht, es deaktiviert den Datepicker nicht –

+0

Ich habe meine Antwort geändert, funktioniert es für Sie? Weil es für mich gut funktioniert. – Antipod

+0

Ja, jetzt funktioniert mein Problem so, dass ich die deaktivierte Variable in meinem Controller nicht initialisiert habe Ich stelle dies auf den Befehl meines Controllers und jetzt funktioniert es '$ scope.disabled = true;' –