2

当具有属性时如何验证使用ng-messageslike ?ng-maxlength<textarea>ui-tinymce

或者,还有更好的方法?

<div class="form-group">
    <div class="col-sm-12">
        <label>Description</label>
        <p class="small">Please provide as much detailed information as possible.</p>
        <textarea name="description" class="form-control required" ui-tinymce="tinymceOptions" ng-model="aC.testData.description"
                  ng-maxlength="100" required></textarea>
        <div class="help-block" ng-messages="mainForm.description.$error" ng-show="mainForm.description.$touched">
            <p ng-message="required">A description is required.</p>
            <p ng-message="maxlength">Description must not exceed 100 characters.</p>
        </div>
    </div>
</div>
4

2 回答 2

1

您看到的问题是标准指令只计算字符,因此是一个简单的(空)HTML 示例:

<p></p> 

当实际上没有“可见”内容时,确实会显示为 7 个字符。我为另一个编辑器构建了一个自定义指令,我最终做的是针对 HTML 使用 jQuery 的 .text() 函数。这将删除所有 HTML 标记,并提供编辑器中实际文本字符数的近似值。这是指令中的部分代码:

var jStrippedString = jQuery(modelValue).text().trim();
return (maxlength < 0) || ngModelCtrl.$isEmpty(jStrippedString) || (jStrippedString.length <= maxlength);

我相信您会想要创建一个自定义 Attribute 指令,该指令允许您为编辑器获取模型数据并自己执行此验证。

于 2015-12-10T15:57:23.673 回答
1

添加forced_root_block: ""到 tinymce 选项也应该有效。默认情况下,它不会<p></p>从一开始就添加。

于 2016-01-14T14:42:13.110 回答