我有一个角度应用程序,我在其中使用如下文本框:
<div class="panel-body text-center">
<textarea id="mytext" class="form-control" rows="4">John,2
Jane,3
John,4
Jane,5
</textarea>
</div>
此处默认加载值John,2 ...等。但是,当我按如下方式引入ng-model访问此数据时,默认值不再显示。可能会发生什么?
<textarea id="mytext" ng-model="mytextvalue" class="form-control" rows="4">
答案 0 :(得分:12)
来自docs:
ngModel
将尝试通过评估当前范围上的表达式绑定到给定的属性。如果该范围内的属性尚未存在,则将隐式创建该属性并将其添加到范围中。
所以这里发生了以下代码:
<textarea ng-model="mytextvalue" >...</texarea>
处理ng-model
指令时,它会在mytextvalue
上查找属性$scope
。如果找不到,则会创建一个空值,然后继续将该空值分配给您的元素。
如果您想默认值,则必须明确指定mytextvalue
的值
您可以使用ng-init
ng-init="mytextvalue='John,2\nJane,3\nJohn,4\nJane,5'"
或者您可以在控制器上使用 JavaScript 进行操作:
$scope.mytextvalue = 'John,2\nJane,3\nJohn,4\nJane,5';
答案 1 :(得分:2)
更简洁的方法(仅使用角度):
在您的控制器上:
$scope.item = {'mytextvalue' : 'John,2 Jane,3 John,4 Jane,5'};
你的观点:
<textarea ng-model="item.mytextvalue"></textarea>
希望有所帮助!