所以我正在 AngularJS 中开发一个新网站,并且非常喜欢它!
然而,我遇到了一个问题。
我正在尝试向我的文本区域添加一个名为“Redactor”的 jQuery 插件,但我认为当我初始化该插件时,它会替换文本区域元素。这是有问题的原因是因为我为文本区域设置了“ng-model”属性,如下所示:
我正在使用 AngularJS UI 来拾取焦点事件,然后在文本焦点上执行以下代码
$scope.addRedactor = function() {
$('.redactor').redactor();
});
现在我似乎无法获取文本区域的值,因为当我尝试访问 ng-model“响应”时,它显示为未定义。
有没有办法可以在受 Redactor 影响后将 ng-model 属性绑定到文本区域?否则,我应该有另一种方法来获取文本区域的值吗?
我今天正在寻找相同的答案并制定了解决它的指令:
angular.module('Module', []).directive("redactor", function() {
return {
require: '?ngModel',
link: function($scope, elem, attrs, controller) {
controller.$render = function() {
elem.redactor({
keyupCallback: function() {
$scope.$apply(controller.$setViewValue(elem.getCode()));
},
execCommandCallback: function() {
$scope.$apply(controller.$setViewValue(elem.getCode()));
}
});
elem.setCode(controller.$viewValue);
};
}
};
});
然后你可以使用以下 HTML:
<textarea ng-model="yourModel" redactor></textarea>
模型将在每次 keyUp 以及用户单击工具栏中的按钮时更新。该模型将包含 HTML 代码。
我刚刚开始使用 AngularJS,所以请让我知道是否有更好的方法来做到这一点,或者如果我打破了一些我仍然不知道的约定。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)