Angular textarea 不能用默认值填充
Posted
技术标签:
【中文标题】Angular textarea 不能用默认值填充【英文标题】:Angular textarea can't be filled with default value 【发布时间】: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。只需删除此属性。剩下的我认为你可以做到! 【参考方案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?
【讨论】:
我不想要占位符。我想要文本区域中的实际可编辑文本以上是关于Angular textarea 不能用默认值填充的主要内容,如果未能解决你的问题,请参考以下文章
如何使 textarea 元素填充整个父 div 网格框(使用 angular-gridster2 或 gridster 库)?