Angularjs Bbcode编辑器

时间:2014-06-14 19:43:10

标签: javascript jquery angularjs angularjs-directive bbcode

我需要一个简单的BBcode编辑器,可以集成到角度应用程序中。像this one这样非常基本的东西。但我无法在任何地方找到这样的东西 我找到的最好的东西是markItUp plugin用于jQuery,但是当我尝试将它集成到我的应用程序中时,它会导致一些错误:当我按下按钮时它没有更新绑定模型元素,由角本身重建。

那么,有什么我可以使用的吗? 如果没有,我如何将第一个编辑器更改为指令?我需要从其他开始,然后将html标记移动到模板?

1 个答案:

答案 0 :(得分:3)

我最终将markItUp与angular集成在一起。我花了很长一段时间和IRC频道的人们提供了很多帮助。我就是这样做的。

MarkItUp指令。

app.directive("markItUp", ["markitupSettings", function(markitupSettings) {
    return {
      restrict: "A",
      scope: {
        ngModel: "="
      },
      link: function(scope, element, attrs) {
        var settings;
        settings = markitupSettings.create(function(event) {
          scope.$apply(function() {
            scope.ngModel = event.textarea.value;
          });
        });
        angular.element(element).markItUp(settings);
      }
    };
  }
]);

这些设置存储在一个服务中,该服务用于在多个实例和控制器之间共享它们。

app.factory('markitupSettings', [
  function() {
    var factory, markset;
    markset = [
      //here goes your usual markItUp layout
    ];
    factory = {};
    factory.create = function(callback) {
      return {
        afterInsert: callback,
        previewParserPath: '',
        markupSet: markset
      };
    };
    return factory;
  }
]);

然后你只需在html布局中设置它:

<textarea name="somevar" ng-model="myText" mark-it-up ></textarea>

它已经完成了。你有一个漂亮的,非常实用的编辑器。