目前,我知道如何从文本框中收集输入并在$scope
变量中使用它。但是如果我不想使用$scope
变量呢?如果我只是想将输入作为参数传递给函数,该怎么办?
当前:
我有一些JSP,看起来像这样:
<textarea
required="true"
spellcheck="on"
data-ng-model="editTools.productDescription"
rows="4"
>
</textarea>
我在JSP中还有一个按钮,它调用Angular JS:中的一个函数
<button
id="description-submit-button"
data-ng-click="mySpecialFunction()"
buttonType="${'primary'}"
htmlButtonType="${'button'}"
>
<text>"Submit"</text>
</button>
所以,我知道这是有效的。我正在为$scope.editTools.productDescription
分配一个值,然后mySpecialFunction()
使用该值。
但是,如果不使用$scope
变量,我该如何完成同样的事情呢?我想说一些类似data-ng-click="mySpecialFunction({the stuff the user typed in the text box})"
的话
这可能吗?怎样
您实际上不必在控制器中声明您的模型变量。你可以把你的textarea
改成这个,这样模型就是myVariable
(你可以随心所欲地命名它(:
<textarea
required="true"
spellcheck="on"
data-ng-model="myVariable"
rows="4">
</textarea>
然后,您可以将myVariable
直接传递到HTML中的mySpecialFunction
调用中,如下所示:
<button
id="description-submit-button"
data-ng-click="mySpecialFunction(myVariable)"
buttonType="${'primary'}"
htmlButtonType="${'button'}"
>
<text>"Submit"</text>
</button>
现在,在你的控制器中,你的功能看起来像这样:
$scope.mySpecialFunction = function (value) {
// value === myVariable
// do something with it here
};
但需要注意的是,angularjs实际上在幕后将myVariable
添加到了$scope
中,因此如果您真的想要,您仍然可以在控制器中使用$scope.myVariable
访问该值。