AngularJS ng-bind一次默认值

时间:2016-01-07 22:33:51

标签: angularjs

我有一个用AngularJS构建的“视图”页面,我在其中显示模型的值,如下所示:

<span ng-bind="doctor.address || '[Not defined yet]'"></span>

如果doctor.address的值未定义,我会正确获取[Not defined yet]文字。

由于这是一个“查看”页面,我知道这些值在显示时不会改变,因此,我想保存一些观察者并使用ng-bind once功能:

<span ng-bind="::doctor.address || '[Not defined yet]'"></span>

但如果doctor.address的现有值有效,我仍会收到[Not defined yet]文字。

如果我使用以下内容:

<span ng-bind="::doctor.address"></span>

我正确地获得了医生地址值。

这也不起作用:

<span ng-bind="::doctor.address">[Not defined yet]</span>

那么,在使用ng-bind once功能时如何定义“默认值”?

编辑:这是最后一次测试不起作用的实际代码:

...
Restangular.one('doctors', params.doctorId).get().then(function(response) {
  $scope.doctor = response;
  $scope.test = "Hello!!!";
}, function(errorResponse) {
  console.log(errorResponse);
});
...

这是标记:

<span ng-bind="::test || '[Not defined yet]'"></span>

仍然不知道可能出现什么问题(异步调用会影响?)

这是一个插件(在Alex Pollan的答案中分叉)我可以重现这个问题(我使用了自定义承诺):https://plnkr.co/edit/pjPeTZq8GxaDfvEWk3xV?p=preview

1 个答案:

答案 0 :(得分:2)

尝试:

<span ng-bind="::(doctor.address || '[Not defined yet]')"></span>

希望有所帮助

更新:这很有趣,因为......

<span ng-bind="::doctor.address || '[Not defined yet]'"></span>

......也适合我(AngularJs v1.4.x)

检查:https://plnkr.co/edit/9jeau6x3pKdlggZ0DzO1?p=preview