Как вы $ просматриваете ввод в ng-repeat отдельно и добавляете результат к определенной строке в угловых js?

У меня есть два поля ввода b_price и s_price внутри ng-repeat. Мне нужно следить за изменениями в этих двух моделях и добавлять оценки. Мой фрагмент кода: HTML

<body ng-app="testthis" ng-controller="testCtrl">
    <table>
    <tr  ng-repeat="list in testList.lists track by $index">

                <td>{{list.symbol}}</td>
                <td>{{list.todays_rate}}</td>
                <td><input type="text" ng-model="testList.b_price"></td>
                <td><input type="text" ng-model="testList.s_price"></td>
                <td>{{estimated}}</td>

            </tr>
                    </table>
        </body>

JS

var app = angular.module('testthis', []);
app.controller('testCtrl', function($scope, $http) {

  $scope.testList ={};
    $scope.testList.lists = [{id: 1,symbol: "assas", total: 123},
                                {id: 2,symbol: "as", total: 103}];



 for (var i=0; i<$scope.testList.lists.length; i++){

  $scope.estimated =0;
  $scope.$watch('testList.b_price + testList.s_price', function() {
    console.log('watch');
    if ($scope.testList.b_price){
      console.log('as');
      $scope.testList.s_price = "";
      $scope.estimated = 100 - $scope.testList.b_price;
    }else if ($scope.testList.s_price){
      $scope.testList.b_price = "";
      $scope.estimated = $scope.testList.s_price - 100;
    } 
  });
 }

});

Когда я ввожу значение во входной тег первой строки, я получаю его повторение при вводе второй строки. Это можно исправить с помощью ng-model="testList.b_price[$index]". Но я не могу посмотреть это значение, т.е. $scope.testList.b_price[0], $scope.testList.b_price[i] выдает ошибку внутри $watch. Еще одна проблема, я не могу добавить оценочный, оцененный [0], оценочный [2]. Фиддл: https://jsfiddle.net/sanj9090/b07jkstj/

0 ответов

Другие вопросы по тегам