ng-модель внутри ngSwitch не работает

0

У меня есть форма, которая отправляет расчетное значение в формате JSON на сервер. Но я не могу понять, почему только ng-модель, которая находится внутри ngSwitch, не отправляет в массив JSON. Я предположил, что ng-модель должна работать в ngSwitch, используя $ parent. Но кажется, что угловатое все еще нуждается в чем-то большем.

Вот моя форма

    <form ng-app="SaunaDoorCalc" ng-controller="SaunaDoorCalcController" class="calculator" name="calculator">

....
<tr><td>Result</td> 
    <td ng-switch-default ng-model="$parent.doorsize">@{{selectedSizeSwitch}}, @{{selectedStandardSize.label}}</td>
    <td ng-switch-when="non-standard" ng-model="$parent.doorsize">@{{selectedSizeSwitch}}, @{{DoorSizeB}}x@{{DoorSizeH}}</td>   
    <td ng-switch-default ng-model="$parent.baseprice">@{{selectedStandardSize.price}}</td>
    <td ng-switch-when="non-standard" ng-model="$parent.baseprice">@{{DoorSizeB*DoorSizeH*5000/1000000}}
    </td>
</tr>

....

</form>

и мой сценарий

angular
  .module('SaunaDoorCalc',[])
    .controller('SaunaDoorCalcController', function($scope, $http) {

    $scope.outerScope = {};
    $scope.formData = {};

    .....

    $scope.submit = function(isValid) {
      if (isValid) {
          $http.post($scope.url, 
            {
              "calcname": "saunadoor", 
              "doorsize": $scope.doorsize, 
              "baseprice": $scope.baseprice, 
              "glass": $scope.selectedGlass, 
              "korobka": $scope.selectedKorobka, 
              "petli": $scope.selectedPetli, 
              "dekor": $scope.selectedDekor, 
              "dostavka": $scope.selectedDostavka,
              "montazh": $scope.montazh, 
              "name": $scope.name, 
              "tel": $scope.tel, 
              "email": $scope.email, 
              "msg": $scope.msg, 
            }).
                        success(function(data, status) {
                            console.log(data);
                            $scope.status = status;
                            $scope.data = data;
                            $scope.result = data; 
                        });
              $scope.name = null;
              $scope.tel = null;
              $scope.email = null;
              $scope.msg = null;
              $scope.DoorSizeB = null;
              $scope.DoorSizeH = null;
              $scope.calculator.$setPristine();
              $scope.message = 'Заказ отправлен. В ближайшее время мы с вами свяжемся.'; 

            }else{
              $scope.message = 'Заполните обязательные поля формы!'; 
            }

        }

  });
Теги:
ng-switch

1 ответ

3

ng-model не привязывается к элементам td вы должны использовать ng-bind вместо

https://docs.angularjs.org/api/ng/directive/ngModel

Директива ngModel связывает вход, select, textarea (или пользовательский контроль формы) с свойством в области видимости с помощью NgModelController, который создается и отображается этой директивой.

  • 0
    делать это так <td ng-switch-default ng-bind="$parent.doorsize">@{{selectedSizeSwitch}}, @{{selectedStandardSize.label}}</td> не решает проблему, как я ожидаю чтобы получить вычисленное значение {{selectedSizeSwitch}}, {{selectedStandardSize.label}} внутри переменной doorize, а затем отправить $scope.doorsize в массив JSON
  • 0
    когда вы используете ng-bind он заменит текст внутри элемента значением переменной в атрибуте ng-bind т.е. <b ng-bind="val">123</b> будет выводить val а не 123
Показать ещё 4 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню