1

我正在尝试使用 ngMessages 指令,为自动保存的富文本编辑器显示两条不同的消息……它们只是“已保存”和“正在保存……”

我在控制器上公开了一个变量,该变量返回一个函数,该函数从控制器后面的服务返回一个属性(显然这是获得双向绑定的唯一方法)。

<div class="col-md-2" ng-messages="saveStatus" role="alert">
    <div ng-message="saving">Saving changes.....</div>
    <div ng-message="'saved'">SAVED!</div>
</div>

我的控制器变量非常简单

$scope.saveStatus = function () {
     return reportService.status;
}

我的服务只是将一个 get 访问器放在一个私有变量上

 get status() {
       return privateStatus;
 }

在我的 Chrome 开发工具中,我可以看到 saveStatus 在范围内并返回一个函数。即使我不使用函数(所以消息应该总是说“SAVED!”)消息仍然没有出现......

输出似乎由 ngMessages 格式化,因此我认为它已加载并且可用,但我在网络上找不到任何不使用 $errors 集合的示例!

<div class="col-md-2 ng-inactive" ng-messages="saveStatus" role="alert">
    <!-- ngMessage: saving -->
    <!-- ngMessage: saved -->
</div>
4

1 回答 1

1

我有同样的问题。

根据文档,可以将 ng-messages键/值集合与指令相关联,这$error只是集合的一个示例:

ngMessages 指令侦听在 ngMessages 属性上设置的键/值集合。由于 ngModel 指令公开了一个 $error 对象,因此该错误对象可以与 ngMessages 一起使用,以比仅使用常规 Angular 模板指令更简单的方式显示控制错误消息。

尝试更新您的服务以返回集合对象,例如报告“保存”情况尝试返回 {saving : true}。这对我有用。

于 2015-11-21T12:47:53.017 回答