如何动态禁用Angular指令
How can I disable dynamically an Angular directive?
我正在使用AngularJS(HTML5/CSS3)进行一个项目。在我的项目的主html文件中,有一个表,我使用控制器的数组来填充:这个控制器管理html页面中包含该表的部分。
表格的html代码是这样的:
<table class="col-md-12 col-sm-12 col-lg-12 display" id="tableIdProcedures">
<thead>
<tr>
<th><span>CODE</span></th>
<th><span>DESCRIPTION</span></th>
<th><span>QUANTITY</span></th>
<th><span>NOTE</span></th>
</tr>
</thead>
<tbody>
<tr ng-repeat="procedure in procedures">
<td>{{procedure.codExamination}}</td>
<td>{{procedure.descrExamination}}</td>
<td contenteditable="true">{{procedure.quantityExamination}}</td>
<td>{{procedure.noteExamination}}</td>
</tr>
</tbody>
控制器已正确填写表格。现在,问题是:如果它按下了页面的特定按钮,我想禁用表每行第三个单元格中的"contenteditable"指令,使字段不再可编辑。如何在javascript代码中禁用Angular指令?因此,如果我想重新启用这些字段,我该如何继续?
为了更好地理解"contenteditable"指令,我在这里复制了它的代码:
(function() {
'use strict';
angular.module('contenteditable', [])
.directive('contenteditable', function($location) {
return {
require: 'ngModel',
link: function(scope, element, attrs, ngModel) {
element.bind('blur change', function() {
scope.$apply(function() {
ngModel.$setViewValue(element.html());
// element.html contain the value modified
if($('#drugsSection').hasClass('ng-hide') === true){
// procedures active
calculateQuantityProcedures();
}else{
// drugs active
calculateQuantityDrugs();
}
});
});
ngModel.$render = function() {
element.html(ngModel.$viewValue);
};
}
}
})
}());
提前感谢您的帮助。
您可以这样做:
当按下该按钮时,您可以在DOM中将contenteditable
设置为false。所以
<td contenteditable="false">{{procedure.quantityExamination}}</td>
现在在您的指令中:
为contenteditable
的值绑定$watch
link: function(scope, element, attrs, ngModel) {
scope.$watch(attrs.contenteditable, function(newval, oldval) {
// unbind the events and disable the directive if its false
});
}
相关文章:
- 将JSON对象传递给angular指令
- Angular指令在alertify setContent内容中不起作用
- 在其他javascript框架模板中运行angular指令
- 如何动态禁用Angular指令
- 在 Angular 指令中,如何进行回调,其中函数名称位于父范围的变量中
- Angular指令中的最佳实践是将文本输入设置为英尺和英寸的格式
- 不适用于动态数据的Angular指令来自$http
- 这段jquery代码在angular指令中不起作用
- Angular 指令似乎没有使用元素传入的选项执行
- 带有Angular指令的HTML;附加时无法工作
- 如何使用angular指令从html中获取数组
- 如何正确控制Angular指令的$dirty和$pure状态
- 在 Angular 指令中定义一个用于 ng-click 的函数
- HTML 标记在使用 Angular 指令时被视为纯文本
- 当 Angular 指令的名称真正重要时
- 如何将侦听器添加到 Angular 指令中
- 嵌套的Angular指令触发父对象上的作用域函数
- 在ui路由器中以Webpack块的形式懒惰地加载Angular指令
- 超链接;编译angular指令内的模板后无法工作
- 用angular指令构建嵌套树