Javascript 如何将td contenteditable值绑定到ng模型
嗨,我有以下td元素:Javascript 如何将td contenteditable值绑定到ng模型,javascript,html,angularjs,contenteditable,Javascript,Html,Angularjs,Contenteditable,嗨,我有以下td元素: <td ng-model="name" contenteditable='true'></td> 我是否可以将此ng模型值从contenteditable td传递到我的控制器?提前感谢各位1。具有可编辑的角度内容 使用可编辑的角度 可以从contenteditable元素中获取值 <div ng-controller="Ctrl"> <span contenteditable="true" ng-mod
<td ng-model="name" contenteditable='true'></td>
我是否可以将此ng模型值从contenteditable td传递到我的控制器?提前感谢各位1。具有可编辑的角度内容 使用可编辑的角度 可以从contenteditable元素中获取值
<div ng-controller="Ctrl">
<span contenteditable="true"
ng-model="model"
strip-br="true"
strip-tags="true"
select-non-editable="true">
</span>
</div>
2.带有指令
你也可以用这个
该指令最初获得于:
角度模块('customControl',[])。
指令('contenteditable',函数(){
返回{
restrict:'A',//仅在元素属性上激活
require:“?ngModel”,//获取NgModelController
链接:功能(范围、元素、属性、模型){
if(!ngModel)return;//如果没有ng模型,则不执行任何操作
//指定应如何更新UI
ngModel.$render=function(){
html(ngModel.$viewValue | |“”);
};
//侦听更改事件以启用绑定
on('blur keyup change',function(){
适用范围:$apply(读取);
});
read();//初始化
//将数据写入模型
函数read(){
var html=element.html();
//清除可编辑内容后,浏览器会留下一个//如果提供了strip br属性,那么我们将其去掉 如果(attrs.stripBr&&html='
'){ html=''; } ngModel.$setViewValue(html); } } }; });代码>
改变我!
必修的!
绑定到contenteditable
不是内置的,但是您可以编写一个简单的指令来完成任务
app.directive(“contenteditable”,function()){
返回{
限制:“A”,
要求:“ngModel”,
链接:功能(范围、元素、属性、模型){
函数read(){
ngModel.$setViewValue(element.html());
}
ngModel.$render=function(){
html(ngModel.$viewValue | | |“”);
};
元素绑定(“模糊键控更改”,函数(){
适用范围:$apply(读取);
});
}
};
});
但是,请注意,在Internet Explorer中,
contenteditable
不能直接应用于表
、COL
、COLGROUP
、TBODY
、TD
、TFOOT
、TH
、THEAD
、或TR
元素;内容可编辑的SPAN
或DIV
元素需要放在各个表格单元格中(请参见)。我需要下载Dinidu?vellattukudy软件包,是的,您应该下载,尽管您可以轻松使用我提供的指令感谢Dinidu!谢谢你!对不起,我对angularJS有点陌生。什么是指令?它是我控制器中的一个功能吗?。指令是自定义代码,可以像控制器一样将自定义行为添加到HTML中。非常感谢。restrict实际上是什么?A和require:“ngModel”
表示什么?restrict:“A”
表示指令匹配HTML属性(contenteditable
,在这种情况下。)要求:“ngModel”
意味着指令希望在与指令相同的HTML元素上存在一个ng model
属性,因为它操纵ng model
的值。这太棒了!谢谢你,克莱斯!