数据绑定到文本区域和ng-show问题

时间:2014-08-29 16:54:37

标签: javascript angularjs

我似乎遇到了与文本区域绑定数据的问题。这看起来很奇怪,因为同样的方法适用于其他输入类型,但不想用于文本区域。我无法找到任何文件说明角度与文本区域有任何明显不同。

我这样做 -

<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。对此有何见解?

谢谢!

1 个答案:

答案 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>