@maxprof
Студент

Почему Angular е видит функцию?

Здравствуйте, помогите разобраться пожалуйста.
Есть во такой код на странице add.html
<div class="modal_button">
			<p><button id="modal_button" ng-submit="addProduct()">Додати новий продукт</button></p> 
		</div>
		<div class="my_Add" id="my_Add" >
			<div class="col-md-3"></div>
			<div class="col-md-6">
				<form action="">
				<div class="col-md-12">
					<br>Назва <br><input type="text" placeholder"Нвзва">
				</div>
				<div class="col-md-12">
					<br>Країна виробник <br><input type="text"  placeholder="Країна">
				</div>
				<div class="col-md-12">
					<br>Калорійність <br><input type="number" class="kalor"  placeholder="Калорійність">
				</div>
				<div class="col-md-12">
					<br>Ціна <br><input class="price" type="number" placeholder="Ціна">
				</div>
				<div class="col-md-12">
					<br>Термін зберігання <br><input type="number" class="number"  placeholder="Термін">
				</div>
				<div class="col-md-12">
					<br>Дата виготовлення<br><input type="date" class="datStw" ng- placeholder="Дата виготовлення">
				</div>
				<div class="col-md-12">
					<br>Опис <br>
					<textarea name="description" id="description" placeholder="Опис" cols="20" rows="8"></textarea>
				</div>
				<div class="col-md-12">
					<p><input type="button" value="Submit" onclick="save()"></p>
				</div>
				</form>
			</div>
		</div>
	</div>
</div>
<div id="Products">
	
</div>


И есть контроллер для этой страницы:
productApp.controller('AddtCtrl',['$scope','$http', '$location', function($scope, $http, $location) {
  $(document).ready(function(){
   $( "#modal_button" ).click(function() { // НЕ важно
      $( ".my_Add").css("display","block");// НЕ важно
      $( "table").hide(300);// НЕ важно
      $( ".modal_button button").css('display','none');// НЕ важно
    });// НЕ важно


  var a = document.getElementsByTagName("input");
  var mas=[];
    function save(){
      for (i=0;i<=3;i++){
          mas[i]=a[i].value; // Из инпутов в массив
        }
      for (i=0;i<=3;i++){
          a[i].value=mas[i]; // Обратно
          document.getElementById('Products').innerHTML += mas[i];
       }
      }
    });
}]);

Почему при добавлении нажатии на кнопку Submit пишется что функция save не найдена?
  • Вопрос задан
  • 226 просмотров
Пригласить эксперта
Ответы на вопрос 3
baskerville42
@baskerville42
Учусь работать (Junior)
var a = document.getElementsByTagName("input");
var mas=[];

Что за ересь? Вы документацию по Ангулару хоть читали? Есть же ngModel..

А это?
for (i=0;i<=3;i++){
          mas[i]=a[i].value; // Из инпутов в массив
        }
      for (i=0;i<=3;i++){
          a[i].value=mas[i]; // Обратно
          document.getElementById('Products').innerHTML += mas[i];
       }

Не ужто нельзя загуглить как в ангуларе пройтись по массиву

<p><input type="button" value="Submit" onclick="save()"></p>


Зачем Вы используете директиву ngSubmit, а потом ещё и на кнопку с value = submit вешаете событие??? И для таких событий есть же специальное ngClick

https://angularjs.org/ я взагалі не заздрю тому, кому ви залишите цей код. Взагалі...
Ответ написан
@lega
Её нужно добавить в $scope
Ответ написан
function save(){
замените на
$scope.save = function() {
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы