ng-bind作为textarea的指令而不是输入标记

时间:2015-01-10 10:19:59

标签: javascript html angularjs

我是angularjs的新手,当我正在探索ng-bind时,我注意到它可以用作textarea ::

的指令
<input type="text" ng-model="review.start"/> 

<textarea ng-bind="review.start"> </textarea>

因此,我在输入标签中写的文本也通过数据绑定反映在textarea字段中。

但是ng-bind无法使用input代码。我认为ng-bind不应该与用户输入一起使用。 Angular docs也没有对此有所了解。

那么,如果用户输入或其他东西,它是否仅用于textarea?

谢谢,

2 个答案:

答案 0 :(得分:3)

以下是来自angularJs

的ngBind指令的代码和平
scope.$watch(attr.ngBind, function ngBindWatchAction(value) {
          element.textContent = value === undefined ? '' : value;
        });

正如您所看到的,当它在属性 ngBind 中发现更改时,会将element.textContent设置为更改后的值。

对于input DOM textContent属性未设置其值。使用 textarea 时,DOM与textContent属性一起使用。

答案 1 :(得分:2)

ngBind可以处理其内容可以替换为文本的任何元素。

根据Angular documentation

  

ngBind属性告诉Angular替换文本内容   指定具有给定表达式值的HTML元素,以及   当表达式的值发生变化时更新文本内容。

包括:

<div>Text</div>
<textarea>Text</textarea>
<span>Text</span>
<h1>Text</h1>
etc...

不适用于:

<input />
<select></select> (requires <option> as children)
<ul></ul> (requires <li> as children)
etc...