如何在我的angularjs指令中切换属性的值,如contenteditable?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在我的angularjs指令中切换属性的值,如contenteditable?相关的知识,希望对你有一定的参考价值。

你看到我的指令切换(true / false)一个contenteditable元素的状态。如果我将“可编辑”var放入ng-class中,它会正确更改。但是我无法在点击时更改属性的值。我怎么能解决这个问题,我在这里缺少什么?

app.directive('ContentEditable', function() {
  return {
    scope: {
      contenteditable: '@'
    },
    restrict: 'E',
    template: '<div contenteditable="{editable}" ng-click="toggleEdit()" ng-transclude></div>',
    transclude: true,
    replace: true,


    link: function($scope) {
      var state = $scope.editable;
      $scope.editable = state === undefined ? false : state;

      $scope.toggleEdit = function(){
        $scope.state = !$scope.state;
        $scope.editable = $scope.state;
      };
    }
  };

});
答案

您需要围绕绑定属性值的双重parens:

contenteditable="{{editable}}"

http://jsfiddle.net/x918ewLo/

另一答案

您可以使用以下格式为我工作

<div id="editableContent" ng-attr-contenteditable="{{editmode}}" ng-bind-html="Content"  ng-style="myStyle">

以上是关于如何在我的angularjs指令中切换属性的值,如contenteditable?的主要内容,如果未能解决你的问题,请参考以下文章

angularjs 指令—— 绑定策略(@=&)

在AngularJS指令中为$ http.get加载模板属性

AngularJs 指令

如何在 AngularJS 中为 ngInclude 指令指定模型?

AngularJS 自定义表单验证指令在我的模式中不起作用

AngularJS TypeScript 指令链接函数