AngularJS ng-bind once default value
<p>I have a "view" page constructed with AngularJS where I display the value of a model as follows:</p>

<pre><code>&lt;span ng-bind="doctor.address || '[Not defined yet]'"&gt;&lt;/span&gt;
</code></pre>

<p>If the value of <code>doctor.address</code> is undefined I correctly get the <code>[Not defined yet]</code> text.</p>

<p>Since this is a "view" page, I know the values won't change while it is displayed, so, I wanted to save some watchers and use the ng-bind once feature:</p>

<pre><code>&lt;span ng-bind="::doctor.address || '[Not defined yet]'"&gt;&lt;/span&gt;
</code></pre>

<p>but if there is a valid an existing value for <code>doctor.address</code> I still get the <code>[Not defined yet]</code> text.</p>

<p>If I use the following:</p>

<pre><code>&lt;span ng-bind="::doctor.address"&gt;&lt;/span&gt;
</code></pre>

<p>I correctly get the doctor address value.</p>

<p>This doesn't work either:</p>

<pre><code>&lt;span ng-bind="::doctor.address"&gt;[Not defined yet]&lt;/span&gt;
</code></pre>

<p>So, how can I define a "default value" when using the ng-bind once feature?</p>

<p><strong>EDIT:</strong> this is the actual code with a last test that didn't work:</p>

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

<p>and this is the markup:</p>

<pre><code>&lt;span ng-bind="::test || '[Not defined yet]'"&gt;&lt;/span&gt;
</code></pre>

<p>and still no idea of what might be wrong (the async call would be affecting?)</p>

<p>This is a plunk (forked from the one on Alex Pollan answer) where I can reproduce the issue (I used a custom promise): <a href="https://plnkr.co/edit/pjPeTZq8GxaDfvEWk3xV?p=preview" rel="nofollow">https://plnkr.co/edit/pjPeTZq8GxaDfvEWk3xV?p=preview</a></p>