#javascript #html #angularjs #jsp
Вопрос:
В настоящее время я знаю, как собирать входные данные из текстового поля и использовать их в $scope
переменной. Но что, если я не хочу использовать $scope
переменную? Что делать, если я просто хочу передать входные данные в качестве параметра функции?
в настоящий момент:
У меня есть JSP, который выглядит так:
lt;textarea required="true" spellcheck="on" data-ng-model="editTools.productDescription" rows="4" gt; lt;/textareagt;
У меня также есть кнопка в JSP, которая вызывает функцию в Angular JS:
lt;button id="description-submit-button" data-ng-click="mySpecialFunction()" buttonType="${'primary'}" htmlButtonType="${'button'}" gt; lt;textgt;"Submit"lt;/textgt; lt;/buttongt;
Итак, я понимаю, что это работает. Я присваиваю значение $scope.editTools.productDescription
, а затем mySpecialFunction()
использую это значение.
Но как бы я сделал то же самое без использования $scope
переменной? Я хотел бы иметь возможность сказать что-то вроде data-ng-click="mySpecialFunction({the stuff the user typed in the text box})"
Возможно ли это? Как?
Ответ №1:
На самом деле вам не нужно объявлять переменную модели в контроллере. Вы можете изменить свой textarea
на этот, чтобы модель была myVariable
(вы можете называть ее как хотите):
lt;textarea required="true" spellcheck="on" data-ng-model="myVariable" rows="4"gt; lt;/textareagt;
Затем вы можете перейти myVariable
непосредственно к mySpecialFunction
вызову в HTML, как это:
lt;button id="description-submit-button" data-ng-click="mySpecialFunction(myVariable)" buttonType="${'primary'}" htmlButtonType="${'button'}" gt; lt;textgt;"Submit"lt;/textgt; lt;/buttongt;
Теперь в вашем контроллере ваша функция будет выглядеть примерно так:
$scope.mySpecialFunction = function (value) { // value === myVariable // do something with it here };
Но просто хочу отметить, что angularjs на самом деле добавляет myVariable
к $scope
закулисью, так что, если бы вы действительно захотели, вы все равно могли бы получить доступ к значению $scope.myVariable
в своем контроллере.
Комментарии:
1. Спасибо, это решает все, о чем я думал!
2. Также: похоже, что нет способа передать переменную в функцию в качестве параметра, не добавляя ее также
$scope
за кулисы?