如何将文本框的内容作为输入参数而不是$scope变量传递到angular js中



目前,我知道如何从文本框中收集输入并在$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访问该值。

最新更新