2016-08-22 12 views
0

Ich arbeite mit einer angularjs App und möchte eine der Eigenschaften dynamisch festlegen. AngularJS - Eigenschaftswert dynamisch ändern

Dies ist ein Stück meines Modells:

$scope.data_step_3 = { 
     'previous_insurance':{ 
      'label':'Has this type of insurance ever been:', 
      'help_text':'', 
      'value':'', 
      'required':true, 
      'regex':'' 
     }, 
     'previous_insurance_description':{ 
      'label':'If so, please explain (not applicable in Missouri):', 
      'help_text':'', 
      'value':'', 
      'required': true, 
      'regex':'' 
     } 
} 

und ich würde die required Eigenschaft previous_insurance_description dynamisch einzustellen. Es würde die true wenn previous_insurance.value == 'Non-reviewed'

Wie kann ich das tun?

Vielen Dank für jede Hilfe

+0

Wann wird sich die Immobilie ändern? Wenn keine Benutzereingabe erfolgt (d. H. Ein Klick), können Sie ng-click = someFunction() für das jeweilige Element verwenden. Lassen Sie someFunction() verantwortlich für die Aktualisierung dieser Informationen. Wenn es direkt von einer API kommt, können Sie die Werte manipulieren, sobald Sie sie mit ähnlicher Logik erhalten. –

+0

Ihr OCNTEX des Codes ist nicht sehr klar. Sie wenden sich von einem API ab und wann ändern wir es? –

+0

@DanKeiger Danke, du hast Recht. Ich habe es in einem ng-click gemacht, nur diesen ng-click = "data_step_3.previous_insurance_description.required = true" –

Antwort

1

erwartete Ergebnis zu erzielen, verwenden Sie unter Option

HTML:

<html> 
<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script> 
<body> 

<div ng-app="myApp" ng-controller="myCtrl"> 
    <div ng-repeat="x in data_step_3"> 
<input value="" ng-model="x.value" ng-keyup="check()"> 
    <input value="" ng-model="x.label"><br> 

    </div> 
<span>Required value - {{data_step_3.previous_insurance_description.required}}</span> 
</div> 



</body> 
</html> 

JS:

var app = angular.module('myApp', []); 
app.controller('myCtrl', function($scope) { 
    $scope.data_step_3 = { 
     'previous_insurance':{ 
      'label':'Has this type of insurance ever been:', 
      'help_text':'', 
      'value':'', 
      'required':true, 
      'regex':'' 
     }, 
     'previous_insurance_description':{ 
      'label':'If so, please explain (not applicable in Missouri):', 
      'help_text':'', 
      'value':'', 
      'required': true, 
      'regex':'' 
     } 
} 

    $scope.check=function(){ 
    var prevInsurance_val= $scope.data_step_3.previous_insurance.value; 
     console.log(prevInsurance_val) 
    if(prevInsurance_val =="Non-reviewed"){ 
     $scope.data_step_3.previous_insurance_description.required = false; 
     } 
     else{ 
     $scope.data_step_3.previous_insurance_description.required = true; 
     } 
    } 
    console.log() 
}); 

Codepen- http://codepen.io/nagasai/pen/YWbxpA

+0

Danke für die Antwort! –

+0

diese Option funktioniert auch für die dynamischen Werte und zum Testen verändere ich manuell den Wert von true in false..Hoffen das funktioniert für dich :) –