Actualmente, sé cómo recopilar la entrada de un cuadro de texto y usarla en una variable de $scope . Pero, ¿qué pasa si no quiero usar una variable de $scope ? ¿Qué pasa si simplemente quiero pasar la entrada como parámetro a una función?
CORRIENTEMENTE:
Tengo un JSP que se parece a esto:
<textarea required="true" spellcheck="on" data-ng-model="editTools.productDescription" rows="4" > </textarea>También tengo un botón en JSP que llama a una función en Angular JS:
<button id="description-submit-button" data-ng-click="mySpecialFunction()" buttonType="${'primary'}" htmlButtonType="${'button'}" > <text>"Submit"</text> </button> Entonces, entiendo que esto funciona. Estoy asignando un valor a $scope.editTools.productDescription y luego mySpecialFunction() usa ese valor.
Pero, ¿cómo lograría lo mismo sin usar una variable $scope ? Me gustaría poder decir algo como data-ng-click="mySpecialFunction({the stuff the user typed in the text box})"
es posible? ¿Cómo?
En realidad, no tiene que declarar la variable de su modelo en el controlador. Puede cambiar su área de textarea a esto para que el modelo sea myVariable (puede nombrarlo como quiera):
<textarea required="true" spellcheck="on" data-ng-model="myVariable" rows="4"> </textarea> Luego puede pasar myVariable directamente a la llamada mySpecialFunction en el HTML de esta manera:
<button id="description-submit-button" data-ng-click="mySpecialFunction(myVariable)" buttonType="${'primary'}" htmlButtonType="${'button'}" > <text>"Submit"</text> </button>Ahora, en su controlador, su función se vería así:
$scope.mySpecialFunction = function (value) { // value === myVariable // do something with it here }; Pero solo para tener en cuenta que angularjs, de hecho, agrega myVariable al $scope detrás de escena, por lo que si realmente quisiera, aún podría acceder al valor con $scope.myVariable en su controlador.