javascript - 如何将 td contenteditable 值绑定(bind)到 ng-model

标签 javascript html angularjs contenteditable

您好,我有以下 td 元素:

<td ng-model="name" contenteditable='true'></td>

我是否可以将这个 ng-model 值从 contenteditable td 传递到我的 Controller ?提前谢谢大家

最佳答案

contenteditable 的绑定(bind)不是内置的,但您可以编写一个简单的指令来完成任务。

app.directive("contenteditable", function() {
  return {
    restrict: "A",
    require: "ngModel",
    link: function(scope, element, attrs, ngModel) {

      function read() {
        ngModel.$setViewValue(element.html());
      }

      ngModel.$render = function() {
        element.html(ngModel.$viewValue || "");
      };

      element.bind("blur keyup change", function() {
        scope.$apply(read);
      });
    }
  };
});

但是请注意,在 Internet Explorer 中,contenteditable 不能应用于 TABLECOLCOLGROUPTBODYTDTFOOTTHTHEADTR 元素直接;内容可编辑的 SPANDIV 元素需要放置在各个表格单元格内(参见 http://msdn.microsoft.com/en-us/library/ie/ms533690(v=vs.85).aspx )。

关于javascript - 如何将 td contenteditable 值绑定(bind)到 ng-model,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37312473/

相关文章:

jquery - 就地替换整个 HTML 文档

javascript - 我怎样才能获得 promise 的值(value)?

javascript - document.getElementById.innerHTML= 单选按钮?

javascript - 使用 kefirjs 将数据传递给 React 组件

javascript - 当名字长度约为 100 个字符时,找到与您的名字完全匹配的内容?

python - 即使页面存在也获取状态代码 404

php - 如何获取带有 HTML 节点的元素的内容?

javascript - 是否可以在重新加载后立即执行函数...?

javascript - 服务器生成内容之上的 AngularJS

javascript - 如果在 jQuery 中选择了选项,则显示 div