2016-04-20 6 views
1

Ich benutze Angular Schema Form, um ein Formular mit JSON Schema zu erstellen Ich möchte das E-Mail-Textfeld anzeigen, wenn der Benutzer die Zeichenfolge abc eingibt, jedoch erscheint das E-Mail-Textfeld nie nach Eingabe von ABC. Ich denke, dass das Problem im Geltungsbereich des Variablennamens oder in ist Bedingung: "name == 'abc'" Können Sie mir eine Hand geben? Es gibt den CodeAngular Schema Form Bedingung

HTML

<html ng-app="myApp"> 
    <head> 
    <title>TODO supply a title</title> 
    <meta charset="UTF-8"> 
    <meta name="viewport" content="width=device-width, initial-scale=1.0"> 
    <script src="bower_components/angular/angular.js" type="text/javascript"></script> 
    <script src="bower_components/angular-sanitize/angular-sanitize.js" type="text/javascript"></script> 
    <script src="bower_components/tv4/tv4.js" type="text/javascript"></script> 
    <script src="bower_components/objectpath/lib/ObjectPath.js" type="text/javascript"></script> 
    <script src="bower_components/angular-schema-form/dist/schema-form.js" type="text/javascript"></script> 
    <script src="bower_components/angular-schema-form/dist/bootstrap-decorator.js" type="text/javascript"></script> 
    <script src="js/app.js" type="text/javascript"></script> 
    </head> 
    <body ng-controller="myCtrl"> 
    <form sf-schema="schema" sf-form="form" sf-model="model"></form> 
    </body> 
</html> 

var myApp = angular.module("myApp", ['schemaForm']); 
myApp.controller("myCtrl", function ($scope) { 
    $scope.schema = { 
     "type": "object", 
     "title": "Comment", 
     "properties": { 
      "name": { 
       "title": "Name", 
       "type": "string" 
      }, 
      "email": { 
       "title": "Email", 
       "type": "string" 
      } 
     } 

    }; 

    $scope.form = [ 
     "name", 
     {key: "email", 
      condition: "name=='abc'" 
     }, 
     { 
      "type": "submit", 
      "style": "btn-info", 
      "title": "OK" 
     } 
    ]; 
    $scope.model = {}; 
}); 

Antwort

1

In der docs Sie können app.js sehen, dass Sie Namen nicht direkt verwenden können, als Zustand mit etwas über Umfang funktioniert, nicht nur das Modell. So funktioniert beispielsweise das Ersetzen von "name" durch "model.name == 'abc'". Siehe meine example here.