角度ui-select和表单验证$ touch不能一起工作

时间:2015-10-26 21:12:20

标签: angularjs ui-select

我有这个validation-message-tag

<div class="validation-message-tag" ng-show="ctrl.data && ctrl.$touched">
  <p ng-repeat="message in success track by $index" class="validation-success">{{message}}</p>
  <p ng-repeat="message in info track by $index" class="validation-info">{{message}}</p>
  <p ng-repeat="message in warning track by $index" class="validation-warning">{{message}}</p>
  <p ng-repeat="message in error track by $index" class="validation-error">{{message}}</p>
</div>

使用ui-select输入字段

      <lable for="tags">Tags</lable>
      <div id="tags">
        <tag-picker-tag ng-model="entity.meta.tags" editable="true" name="tags" check-valid-user-meta-tags></tag-picker-tag>
        <validation-message-tag ctrl="form.tags"></validation-message-tag>
      </div>

tag-picker-tag:

<div class="tag-picker-tag">
  tags
  <ui-select ng-model="$parent.tags" ng-disabled="! editable" multiple tagging tagging-tokens="SPACE|," tagging-label="(custom 'new' label)" title="Select tags" sortable="true" theme="bootstrap" >
    <ui-select-match placeholder="Enter Tags...">{{$item}}</ui-select-match>
    <ui-select-choices repeat="tag in suggestedTags | filter:$select.search">
      {{tag}}
    </ui-select-choices>
  </ui-select>
  <p>Selected: {{tags}}</p>
</div>

验证器使用正确的验证消息成功无效输入失败。但验证消息未显示,因为$ touch始终为false。我已尝试过同样的其他输入,如文本区域,只有ui-select不起作用。

那么有没有办法用角度$触摸字段来支持ui-select?或者是否可以使用ui-select的其他布尔标志?

1 个答案:

答案 0 :(得分:0)

离开该字段后,不确定<ui-select>,但定期<input>更新 $触及。修改值后,使用 $ dirty ,它将变为true。