Javascript 使用ng模型动态禁用跨度

Javascript 使用ng模型动态禁用跨度,javascript,angularjs,angular-directive,Javascript,Angularjs,Angular Directive,我遵循这个示例,使用ngModelController创建自定义可编辑的: 我现在想做的是能够通过指令本身内部的逻辑动态禁用该字段的编辑。禁用它意味着用户根本无法编辑文本,它只会显示为常规文本 以下是一个示例: 来自plunkr的代码: angular.module('app', []) .controller('Ctrl', function ($scope) { $scope.stuff = "test"; }) .directive('contenteditable'

我遵循这个示例,使用
ngModelController
创建自定义可编辑的

我现在想做的是能够通过指令本身内部的逻辑动态禁用该字段的编辑。禁用它意味着用户根本无法编辑文本,它只会显示为常规文本

以下是一个示例:

来自plunkr的代码:

angular.module('app', [])


.controller('Ctrl', function ($scope) {
    $scope.stuff = "test";
  })
  .directive('contenteditable',
    function ($log) {
        'use strict';
        return {
            restrict: 'A',
            require: 'ngModel',
            scope: {
            },
            link: function ($scope, $element, $attributes, ngModel) {
                if (angular.isUndefined(ngModel)) {
                    $log.warn('ngModel is not defined');
                    return;
                }
                function read() {
                    ngModel.$setViewValue($element.text());
                }
                ngModel.$render = function () {
                    $element.html(ngModel.$viewValue || '');
                };
            }
        };
    }
);

任何帮助都将不胜感激。

感谢gitter.im AngularJS房间里一位非常乐于助人的人,我意识到
contentEditable
是一个真正的HTML5API,这正是使span元素可编辑的原因,而不是AngularJS


我所要做的就是更改指令的名称并动态删除
contentEditable

您希望如何动态地影响它?在父控制器的某个地方有真/假标志?请查看我的答案。我错过了一些非常明显的事情!