我似乎遇到了与文本区域绑定数据的问题。这看起来很奇怪,因为同样的方法适用于其他输入类型,但不想用于文本区域。我无法找到任何文件说明角度与文本区域有任何明显不同。
我这样做 -
<textarea rows="4" ng-model="assessments.prereqs" ng-show="editorEnabled"></textarea>
<p ng-show="!editorEnabled">{{assessments.prereqs}}</p>
我遇到的问题是当我将editorEnabled切换为关闭时,文本区域隐藏,<p>
中没有显示任何内容。
如果我做这样的事情,文本会显示,但是当我用editorEnabled触发ng-show时会消失。 -
<textarea rows="4" ng-model="assessments.prereqs" ng-show="editorEnabled"></textarea>
{{assessments.prereqs}}
这似乎很奇怪,因为这种方法适用于其他各种输入,但不适用于textarea。对此有何见解?
谢谢!
答案 0 :(得分:1)
这是一个有效的傻瓜:http://plnkr.co/edit/le38sGWTmQbFWB6ndRcM
textarea
没有什么特别之处,除了它们可以是多行,而且还原包含\n
,需要由<br>
替换才能在HTML中正确显示。我提供的示例没有对此进行集成,但您可以在另一个SO问题中找到实现此目的的指令:AngularJS: Writing to and Reading from textarea with multilines
回到你的问题:
控制器:
.controller('myCtrl', function ($scope) {
$scope.editorEnabled = true;
$scope.assessments = {
prereqs: 'It works !'
};
});
HTML:
<div ng-controller="myCtrl">
<div ng-click="editorEnabled = !editorEnabled">Toggle</div>
<textarea rows="4" ng-model="assessments.prereqs" ng-show="editorEnabled"></textarea>
<p ng-show="!editorEnabled">{{assessments.prereqs}}</p>
</div>