2

在 Handlebars 中,您可以更改当前范围,因此如果您有一个对象:

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

然后我可以将该上下文发送到这样的模板:

<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>

但在 Angular 中,如果我设置 $scope.walrus = walrus,我会得到以下结果:

<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>

有没有办法让 Angular 识别它所在的范围,而不需要额外的walrus., zombie., or (worst of all) walrus.address.

4

2 回答 2

2

有没有办法让 Angular 识别它所在的范围,而不需要额外的walrus., zombie., or (worst of all) walrus.address.

我不知道有什么方法可以做到这一点。

于 2013-03-13T02:15:10.580 回答
0

对于未嵌套的“海象”,您可以这样做:

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

这将使用海象对象扩展 $scope,现在您可以在模板中使用 {{ bubbles }}!

我使用了扩展,但我真的不知道这是否是做你想做的事情的正确方法!

于 2013-05-01T13:22:48.597 回答