我需要一个简单的BBcode编辑器,可以集成到角度应用程序中。像this one这样非常基本的东西。但我无法在任何地方找到这样的东西 我找到的最好的东西是markItUp plugin用于jQuery,但是当我尝试将它集成到我的应用程序中时,它会导致一些错误:当我按下按钮时它没有更新绑定模型元素,由角本身重建。
那么,有什么我可以使用的吗? 如果没有,我如何将第一个编辑器更改为指令?我需要从其他开始,然后将html标记移动到模板?
答案 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>
它已经完成了。你有一个漂亮的,非常实用的编辑器。