2017-09-21 6 views
-4

각도 1과 이온 1을 기반으로하는 이온 성 응용 프로그램을 개발 중이며 ng-model 속성이 설정된 두 개의 입력 상자가 있습니다. 기본적으로 다른 값의 값이 변경되면 다른 입력 상자의 값을 변경하려고합니다. 문제는 입력 상자 -1의 값을 변경할 때 input-box-2의 값이 변경되지만 입력 상자 -2를 변경하는 순간 입력 값의 변경 사항을 반영하지 않는다는 것입니다. 상자 -1과 그 반대의 경우도 마찬가지입니다.ng-model은 값을 업데이트하지 않습니다.

콘솔로 값을 기록하려고했는데 변경 사항이 반영되지 않습니다.

코드를 찾기는 여기

$scope.updateValues = function(option,values) { 
    switch (option) { 
     case "msrp_gp_parsent": 
     $scope.msrp_gp_parsent = values; 
     $scope.averagecost = (Math.abs((values - 100) * $scope.msrp_price))/100; 
     $scope.standardcost = Math.abs((100 * $scope.averagecost)/($scope.msrp_gp_parsent - 100)); 
     break; 

     case "averagecost": 
     $scope.averagecost = values; 
     productDetailsDataFactory.getProductDetails().Pricing.AverageCost = values; 
     $scope.msrp_gp_parsent = (($scope.msrp_price - values)/$scope.msrp_price) * 100; 
     break; 
     default: 
    } 
<input type="number" ng-model="averagecost" name="" 
     ng-keyup="updateValues('averagecost',averagecost)"> 
<input type="number" 
     ngkeyup="updateValues('msrp_gp_parsent',msrp_gp_parsent)" /> 
+0

코드 스 니펫을 추가 할 수 있습니까? 두 텍스트 상자가 같은 컨트롤러 아래에 있습니까? –

+0

이것은 불완전한 질문입니다. – yesIcan

+0

텍스트 상자 1의 텍스트 상자 2 값을 가져 오시겠습니까? – jose

답변

0

ng-keyup 지시어는 ng-model 지침을 싸우고 조각. 요소에

<input type="number" ng-model="averagecost" 
     ̶n̶g̶-̶k̶e̶y̶u̶p̶ ng-change="updateValues('averagecost',averagecost)" /> 
<input type="number" ng-model="msrp_gp_parsent" 
     ̶n̶g̶-̶k̶e̶y̶u̶p̶ ng-change="updateValues('msrp_gp_parsent',msrp_gp_parsent)" /> 

모두 ng-modelng-keyup 넣어의 keyup 이벤트 리스너 코드가 먼저 실행됩니다 보장 할 수 없습니다 :

ng-change 지시어로 ng-keyup 지시어를 교체합니다. ng-change 지시어는 ngModelController과 통합되어 있으며 사용자 입력에 따라 ng-model 값이 변경된 후에 올바르게 실행됩니다.

0

두 가지 문제는 로 입력 타입을 사용하고 여기에

  1. 문제이고, 당신이 이벤트를 키를 사용합니다.
  2. 코드에서 NaN을 처리해야합니다. 사용자가 "-"을 입력하면 숫자가 아닙니다. # 1

솔루션입니다 - 당신이 스피너를 사용할 때 KeyUp 이벤트가 트리거되지 않습니다. 대신 change 이벤트를 사용하십시오.

# 2의 해결책은 코드에서 NaN을 처리하는 것입니다.

Fiddle forked from yours to show - https://jsfiddle.net/mohanramphp/1ehf49he/24/ 
+0

입니다. 해결책은 @MohanRam입니다. bt :( 나는 똑같은 절차를 밟았 어 .BT는 도대체 뭐가 잘못 됐는지 몰랐어. 전혀 작동하지 않는 것 같아. 문제는 그대로. –

+0

이온 1로 바이올린을 만들고 사용법을 보여줘. 거기서 해결하도록 도와 드리겠습니다. –