AngularDart文本区域安全HTML字符串编辑器

时间:2014-07-03 09:25:08

标签: html escaping dart angular-dart

在我的AngularDart应用程序中,我有一个小/简单文本,大小限制(160个字符) 我可以用:

显示html字符串和剩余的字符
<textarea class="form-control" name="description" id="description"  ng-model="consent.inputDescription" rows="3"></textarea>
<p>Remaining chars: {{consent.getRemainingChars()}}</p>

它不适用于html字符,例如\&\egrave;

ng-bind-html指令可以正确显示html字符串,但控制器内的字符串不会被解释,所以我无法正确计算剩余的字符

在AngularJS上,严格的上下文转义服务($sce)对于完成这项工作非常有用。我没有在AngularDart中找到它。是否有与AngularDart类似的实现?

1 个答案:

答案 0 :(得分:2)

此实施有效,等待更好: - / 也许AngularDart可以简化这段代码。

我用

捕捉输入字段的所有事件
//handle text aera events
query("#description")
  ..onChange.listen(handler)
  ..onKeyDown.listen(handler)
  ..onKeyUp.listen(handler)
  ..onCut.listen(handler)
  ..onPaste.listen(handler);

所以我可以在处理程序中计算剩余的字符

void handler(Event event) {
  remainingChars = _getRemainingChars();
}

剩余的字符用textarea值(不安全)

计算
_getRemainingChars() {
  int nbChars = 160-_getUnsafeDescription().length;
  return nbChars;
}

我用以下内容阅读了编辑过的文字:

_getUnsafeDescription(){
  var textarea = _shadowRoot.query('#description');
  return textarea.value;
}

文本区域与html内容绑定

<textarea class="form-control" name="description" id="description"  ng-bind-html="consent.inputDescription" rows="3"></textarea>
<p ng-if="consent.remainingChars">Remaining chars: {{consent.remainingChars}}</p>

不安全编辑的字符串帖子,转义并存储在后端