Change scope when rendering nested objects in AngularJS

In Handlebars you can change the current scope, so if you have an object:

walrus: {
  bubbles: 7,
  zombies[
    {name: 'Jim', hobby: 'pinocle'},
    {name: 'Cassandra', hobby: 'privateering'},
    {name: 'Ke$ha', hobby: 'yelling'}
  ],
  address: {
    city: 'Fresno',
    state: 'CA'
  }
}

Then I can send that context to a template such as this:

<article class='walrus'>
  <h2>I have {{ bubbles }} bubbles!</h2>
  <ul>
    {{#each zombies}}
      <li>{{ name }} likes {{ hobby }}
    {{/each }}
  </ul>
  <div class='address'>
    {{#with address}}
      <p>{{city}}, {{state}}</p>
    {{/with}}
  </div>
</article>

But in Angular, if I set $scope.walrus = walrus, I end up with this:

<article class='walrus'>
  <h2>I have {{ walrus.bubbles }} bubbles!</h2>
  <ul>
      <li ng-repeat="zombie in walrus.zombies">{{ zombie.name }} likes {{ zombie.hobby }}
  </ul>
  <div class='address'>
    <p>{{walrus.address.city}}, {{walrus.address.state}}</p>
  </div>
</article>

Is there a way to have Angular recognize what scope it is in, and not require the extra walrus., zombie., or (worst of all) walrus.address.?

Is there a way to have Angular recognize what scope it is in, and not require the extra walrus., zombie., or (worst of all) walrus.address.?

I'm not aware of any way to do this.

For the not nested 'walrus' you could do this:

angular.extend($scope, $scope.walrus);

This will extend the $scope with the walrus object and now you can use {{ bubbles }} in the template!

I used extend, but i really don't know if this is the right way to do what you want!