无法使用 Angular 获取 HTML textarea 输入文本

Posted

技术标签:

【中文标题】无法使用 Angular 获取 HTML textarea 输入文本【英文标题】:Can't acquire HTML textarea input text using Angular 【发布时间】:2017-02-27 03:38:52 【问题描述】:

我有一个使用 <textarea>html 文件,我想使用 Angular 控制器获取其输入。相关HTML代码如下:

<div class="list">
  <textarea
    placeholder="Comments"
    id="feedback"
    ng-model="feedbackInput">
  </textarea>
</div>

这是我的 javascript 控制器的相关代码,我觉得它在正确的轨道上,但会产生输出:

$scope.finishSummary = function()
    $scope.feedbackInput = "";
    console.log( "Feedback text = " + JSON.stringify($scope.feedbackInput) );

产生输出:

反馈文字=“”

我仅出于调试目的使用“console.log()”,但我希望能够从&lt;textarea&gt; 中查看实际输入值。我对 HTML 编码比较陌生,尤其是在使用 Angular 方面,所以请原谅我对这件事缺乏经验。最后我只想检查&lt;textarea&gt;中是否没有文字。有关如何执行此操作的任何建议,以便我可以将来自 &lt;textarea&gt; 的数据输入注入到 Angular 中?谢谢!

【问题讨论】:

【参考方案1】:

您正在重置值“”,只需删除该行,

$scope.finishSummary = function()   
    console.log( "Feedback text = " + JSON.stringify($scope.feedbackInput) );

另外你没有在代码中的任何地方调用finishSummary(),你可以在ng-blur中调用它来查看变量的变化

 <textarea
    placeholder="Comments"
    id="feedback"
    ng-blur="finishSummary()"
    ng-model="feedbackInput">
  </textarea>

DEMO

【讨论】:

或者将 console.log 移到重置它的行上方! :) @Sajeetharan 我忘了提到我有一个调用 finishSummary() 的按钮。但我做了你建议的改变,现在我得到“反馈文本 = 未定义”。还有其他建议吗? @Justin 可能你做错了什么,检查 plunker plnkr.co/edit/gYk1TpBFz332SaaF1AkN?p=preview @Sajeetharan 抱歉耽搁了。我很想将其标记为“已回答”,但由于某种原因它仍然给我“未定义”,即使我几乎完全拥有 Plunker 中的内容。

以上是关于无法使用 Angular 获取 HTML textarea 输入文本的主要内容,如果未能解决你的问题,请参考以下文章

Angular 10 - 无法加载模块脚本:服务器以“text/html”的非 JavaScript MIME 类型响应

无法加载 Angular 生产构建 - 由于不允许的 MIME 类型(“text/html”),加载模块被阻止

无法在 Angular 2 应用程序中提交 HTML 表单

无法从 innerHTML 获取动态数据 - Angular

无法使用 Angular js 2 打印数据

如何在 Angular 2 中读取 JSON #text