【问题标题】:Getting value of TextArea angularjs获取TextArea angularjs的价值
【发布时间】:2015-12-27 22:38:53
【问题描述】:

我有一个文本区域:

<textarea class="notes" ng-model="notes" placeholder="Some text" style="height: 630px;"></textarea>

然后我有一个按钮:

<button ng-click="saveNotes(notes)"></button>

然后我的控制器中有这个方法:

$scope.saveNotes = function(notes) {
    console.log(notes);
    student.saveNotes(notes, function() {
        console.log("Successfully saved notes.")
    }
)};

据我所知,notes 应该返回 textarea 的值,但它始终返回“未定义”。谁能发现问题?

谢谢

【问题讨论】:

  • 您是否检查过它们是否在同一个控制器下(因此在同一个范围内)
  • @Binvention 它们在同一个控制器下。还有什么可能是原因吗?
  • 我认为这要么是在用于 ng 模型之前未定义注释的问题,要么是范围存在奇怪的问题。我发现管理范围最简单的方法是将变量分配给控制器而不是 $scope。它可能会更长一些,但当您遇到范围问题时更容易判断
  • 对于第一个解释,您可以使用 ng-init('notes') 将变量分配给控制器,我举了一个例子作为答案

标签: javascript angularjs scope textarea angular-ngmodel


【解决方案1】:

也许尝试将变量分配给控制器而不是像这样的范围

<div ng-controller='myController as app'>
<textarea class="notes" ng-model="app.notes" placeholder="Some text" style="height: 630px;"></textarea>
<button ng-click="app.saveNotes(app.notes)"></button>
</div>

然后在你的控制器下的代码中

this.saveNotes = function(notes) {
console.log(notes);
student.saveNotes(notes, function() {
    console.log("Successfully saved notes.")
}
)};

在我看来,它只是有助于防止范围冲突

【讨论】:

    【解决方案2】:

    您在“$scope.notes”中检索笔记的值。 解决方案:

    <button ng-click="saveNotes()"></button>
    

    和:

    $scope.saveNotes = function() {
        console.log($scope.notes);
        student.saveNotes($scope.notes, function() {
            console.log("Successfully saved notes.")
        }
    )};
    

    【讨论】:

    • 我使用了您的解决方案,但仍然遇到同样的错误。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-05-11
    • 2021-02-25
    • 1970-01-01
    • 2018-01-12
    • 2017-10-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多