2017-08-02 4 views
1

Ich versuche, den Wert des Jahres in der Ansicht anzuzeigen, die HTML ist, aber Jahreswerte werden überhaupt nicht angezeigt. Obwohl, mein anderer Wert angezeigt wird, während die Bedingung nicht aktiviert ist (wie Kreditkarte), aber wenn ich es aktiviere, werden Jahreswerte nicht angezeigt, während Werte vom Controller kommen und in der Konsole angezeigt werden. HierJahr Wert wird nicht in angularjs angezeigt

ist die Ansicht Code: -

<div class="col-xs-2 innerN" style="width: 14%;"> 
       <select ng-disabled="page.creditcard.isDisabled" class="form-control innerN" placeholder="YYYY" name="ccExpYear" ng-model="page.expyear" required style="border-left:none"> 
        <option value="XX" selected ng-if="page.creditcard.isDisabled">XX</option> 
        <option ng-repeat="year in page.yearList" value="{{year}}" ng-if="!page.creditcard.isDisabled">{{year}}</option> 
       </select> 
      </div> 

Und hier ist der Controller-Code: -

$scope.page.monthList = ["01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11", "12", ]; 
$scope.page.yearList = []; 
var d = new Date(); 
var year = d.getFullYear(); 
//$scope.page.yearList.push(year); 
$scope.page.expyear = year; 
console.log("Pawan2", $scope.page.expyear); 
for (var i = 0; i < 21; i++) { 
    { 
     $scope.page.yearList.push(year + i); 
    }; 
} 
$scope.years = $scope.page.yearList; 
console.log("YearListPawan", $scope.page.yearList); 
$scope.page.expmonth = "01"; 
$scope.monthList = "01"; 
// watcher 
$scope.$watchGroup(['page.expmonth', 'page.expyear'], function(newValues, oldValues, scope) { 
    //MM-YYYY 
    if (typeof newValues[1] == "undefined" || typeof newValues[0] == "undefined") scope.authorize.creditCard 
     .expirationDate = null; 
    else $scope.authorize.creditCard.expirationDate = newValues[1] + "-" + newValues[0]; 
    console.log("Pawan", $scope.authorize.creditCard.expirationDate) 
}, true); 

Ich hoffe, ich bin anough klar die Antwort für diese zu erhalten. PS: THnx im Voraus für Hilfe.

Antwort

0

Hier ist die Lösung, die ich auf das Szenario angewendet haben -

Und hier ist die Controllercode mit wenigen Änderungen: -

var app = angular.module("myApp", []); 
app.controller("myCtrl", function($scope) { 
$scope.page = {}; 
$scope.page.monthList = ["01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11", "12", ]; 
$scope.page.yearList = []; 
var d = new Date(); 
var year = d.getFullYear(); 
var addYears = function() { 
    var d = new Date(); 
    var year = d.getFullYear(); 
    $scope.page.yearList = []; 
    var i = 0; 
    for (i = 0; i < 40; i++) { 
     $scope.page.yearList.push(year.toString()); 
     year++; 
    } 
} 
addYears(); 
$scope.years = $scope.page.yearList; 
$scope.page.expyear = d.getFullYear(); 
$scope.page.expmonth = "01"; 
$scope.monthList = "01"; 
// watcher 
$scope.$watchGroup(['page.expmonth', 'page.expyear'], function(newValues, oldValues, scope) { 
    //MM-YYYY 
    if(typeof newValues[1] == "undefined" || typeof newValues[0] == "undefined") 
     scope.authorize.creditCard.expirationDate = null; 
    else 
     $scope.authorize.creditCard.expirationDate = newValues[1] + "-" + newValues[0]; 
    console.log("Pawan", $scope.authorize.creditCard.expirationDate) 
}, true); 
Hier

ist der Ansicht Code: -

<!DOCTYPE html> 
<html><scriptsrc="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.4/angular.min.js"></script> 
<body> 
<div class="col-xs-2 innerN" style="width: 14%;"> 
       <select ng-disabled="page.creditcard.isDisabled" class="form-control innerN" placeholder="YYYY" name="ccExpYear" ng-model="page.expyear" required style="border-left:none"> 
        <option value="XX" selected ng-if="page.creditcard.isDisabled">XX</option> 
        <option ng-repeat="year in page.yearList" value="{{year}}" ng-if="!page.creditcard.isDisabled">{{year}}</option> 
       </select> 
      </div> 

Hoffnung, dies anderen zu helfen.

0

Sie sollten ng-Wert statt Wert verwenden: -

var app = angular.module("myApp", []); 
 
app.controller("myCtrl", function($scope) { 
 
    $scope.page = {}; 
 
$scope.page.monthList = ["01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11", "12", ]; 
 
$scope.page.yearList = []; 
 
var d = new Date(); 
 
var year = d.getFullYear(); 
 
//$scope.page.yearList.push(year); 
 
$scope.page.expyear = year; 
 
console.log("Pawan2",$scope.page.expyear); 
 
for(var i=0; i<21; i++){ 
 
    { 
 
     $scope.page.yearList.push(year+i); 
 
    }; 
 
} 
 
$scope.years = $scope.page.yearList; 
 

 
console.log("YearListPawan",$scope.page.yearList); 
 
$scope.page.expmonth = "01"; 
 
$scope.monthList = "01"; 
 
// watcher 
 
$scope.$watchGroup(['page.expmonth', 'page.expyear'], function(newValues, oldValues, scope) { 
 
    //MM-YYYY 
 
    if(typeof newValues[1] == "undefined" || typeof newValues[0] == "undefined") 
 
     scope.authorize.creditCard.expirationDate = null; 
 
    else 
 
     $scope.authorize.creditCard.expirationDate = newValues[1] + "-" + newValues[0]; 
 
    console.log("Pawan", $scope.authorize.creditCard.expirationDate) 
 
}, true); 
 
});
<!DOCTYPE html> 
 
<html> 
 
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.4/angular.min.js"></script> 
 
<body> 
 

 
<div ng-app="myApp" ng-controller="myCtrl"> 
 
    
 
<div class="col-xs-2 innerN" style="width: 14%;"> 
 
       <select ng-disabled="page.creditcard.isDisabled" class="form-control innerN" placeholder="YYYY" name="ccExpYear" ng-model="page.expyear" required style="border-left:none"> 
 
        <option value="XX" selected ng-if="page.creditcard.isDisabled">XX</option> 
 
        <option ng-repeat="year in page.yearList" ng-value="year" ng-if="!page.creditcard.isDisabled">{{year}}</option> 
 
       </select> 
 
      </div> 
 
</div>

+0

Dank @Gaurav Srivastava für die Antwort, mir fehlte das ng-Tag. Es funktioniert jetzt gut. –

+0

@pawantiwari froh, ich könnte helfen. –

+0

@ GauravSrivatsava Ich muss nur Wert anstelle von ng-Wert verwenden, jedoch fehlte mir die Funktion, die Jahre in der Liste hinzuzufügen, dass das Modell dort zugewiesen wurde. Wie auch immer, es funktioniert in beiden Richtungen. –

Verwandte Themen