【问题标题】:Angular textarea can't be filled with default valueAngular textarea 不能用默认值填充
【发布时间】:2017-01-28 08:33:25
【问题描述】:

我正在尝试为我的 Angular 文本区域设置一个默认值。我想我尽了一切可能。没有任何效果。我有一个 html 模板

<textarea ng-model="title" required class="textbox" id="feedbackInput" ng-init="title= initvalue"></textarea>

连接到组件\控制器:

angular
    .module('feedbackForm')
    .component('feedbackForm', {
        templateUrl: 'feedback-form/feedback-form.template.html',
        controller: ['$scope', '$routeParams', 'Feedback', '$localStorage',
            function FeedbackFormController($scope, $routeParams, Feedback, $localStorage) {
                console.log('FeedbackForm Controller');
                var self = this;
                var feedback = "";
                $scope.initvalue = "hhhhhh";
            }
        ]
    });

它不起作用。它没有填满我的文本区域。我尝试使用 this,self,$ctrl... 任何想法如何在我的 textarea 中设置默认值,而无需过多地更改控制器。

【问题讨论】:

  • 在将一些默认值放入您的文本区域之前,请考虑使用 placeholder 属性来指导您的用户。否则,请检查以下答案。在任何地方使用它之前,请阅读有关ng-init 的文档。
  • 我不想要占位符。我想要文本区域中的实际可编辑文本
  • 你能给我一个选择这个解决方案的充分理由吗?
  • 我想要一个页面,我的用户可以在其中添加反馈,但如果他们已经给出了反馈,我希望他们能够编辑它而不是仅仅写另一个。这是为了面试反馈
  • 下面是一个非常小的例子:JSFiddle。不需要 ng-init。只需删除此属性。剩下的我认为你可以做到!

标签: javascript html angularjs textarea


【解决方案1】:

您需要在相应控制器中将默认值设置为 textarea 的 ng-model 或使用 ng-init。

示例(使用 ng-init):

<textarea ng-init='foo="Some default value"' ng-model='foo'></textarea>

或(不使用 ng-init):

<textarea ng-init='foo="Some default value"'>{{foo}}</textarea>

【讨论】:

  • 你读过我的代码吗?因为这就是我尝试过的。我设置了一个 ng-model,我也尝试使用 ng-init。他们只是不工作,所以我可能做错了什么
【解决方案2】:

这样试试

<textarea ng-model="title" required class="textbox" id="feedbackInput" ng-init="title= 'initvalue'"></textarea>

或在控制器中尝试这样

$scope.title='Default value'

希望对你有帮助

【讨论】:

  • 我都试过了。第一个在文本区域中打印字符串“initvalue”,这不是我想要的。第二个在我的文本区域中没有任何内容。
【解决方案3】:

我想你要找的是placeholder

【讨论】:

  • 我不想要占位符。我想要文本区域中的实际可编辑文本
猜你喜欢
  • 2013-03-01
  • 2019-01-19
  • 2020-05-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-02-06
  • 1970-01-01
相关资源
最近更新 更多