【发布时间】:2014-06-25 01:27:26
【问题描述】:
我正在学习 AngularJS。我遇到了一些我无法解释的事情,也找不到任何解释(或解决方案)。
我有一个简单的 AngularJS 应用程序,我试图将 <span contenteditable="true"> 绑定到一个值,但它不起作用。例如:
<!-- Works as expected -->
<input data-ng-model="chunk.value"></input>
<!-- Shows value, but doesn't bind - changes not reflected in model -->
<span contenteditable="true">{{chunk.value}}</span>
<!-- This is empty -->
<span contenteditable="true" data-ng-model="chunk.value"></span>
如何使最后一个 span 使用 2-way 绑定,以便编辑其值更新 chunk.value ,反之亦然?
【问题讨论】:
-
span 元素是只读的。您需要某种输入来与 ng-model 进行 2 路绑定。您打算如何在第二个跨度中更改内容?
-
html中怎么会有只读的东西?我计划通过模型更改它,或者通过用户单击它并输入 - 因此
contenteditable="true" -
如何在跨度或标签上输入数据?您可以更改它们的值,但它们会读取您给它们的任何值。
-
1) 按 F12 调出开发控制台,现在就在此页面上。 2) 输入
$('span').text('potato');并回车。 3) 通知更新内容。 -
您希望您的用户使用开发人员工具来更改文本吗?用户可以编辑某些 DOM 元素,span 不是其中之一。这就是他所说的只读。
标签: javascript angularjs html contenteditable angularjs-ng-model