我有一个用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
答案 0 :(得分:2)
尝试:
<span ng-bind="::(doctor.address || '[Not defined yet]')"></span>
希望有所帮助
更新:这很有趣,因为......
<span ng-bind="::doctor.address || '[Not defined yet]'"></span>
......也适合我(AngularJs v1.4.x)