2013-03-12 1 views
2

В Рулях вы можете изменить текущий масштаб, так что если у вас есть объект:Изменения области при визуализации вложенных объектов в AngularJS

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> 

Но Угловое, если я устанавливаю $ scope.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> 

есть ли ва у, чтобы Угловое признать, что сфера он находится, и не требует дополнительной walrus., zombie., или (хуже всего) walrus.address.?

+0

Вы имеете в виду вы хотите использовать один и тот же шаблон с различными областями правильно? Какой прецедент вы имеете в виду? Моя первая идея - это директивы или просто разные маршруты, но я не уверен, что это то, что вы ищете :) –

+0

У меня есть объект, похожий на пример объекта с вложенными объектами. Если я хочу, чтобы у меня было шоу с морщинами, тогда мне нужно отобразить всю эту информацию (так не на другом маршруте), но набирая вложенные объекты, я помещаю большие беспорядки в свои представления! По общему признанию, стиль, но посмотрите на это излишне неудобно '.address p'! – Chris

+0

легко перемещать 'clutter' к директиве [plunker демо] (http://plnkr.co/edit/3psx921S4AO7w6s2NboZ?p=preview) – charlietfl

ответ

2

Есть ли способ, чтобы иметь Угловое признать, что сфера он находится, и не требует дополнительной walrus., zombie., или (хуже всего) walrus.address.?

Я не знаю, как это сделать.

+0

К сожалению, это, кажется, правильный ответ. Я думаю, что я мог бы явно создать дочернюю область, но это не было бы чище. – Chris

0

Для не вложен «моржей» вы можете сделать это:

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

Это расширит $ рамки с объектом моржа и теперь вы можете использовать {{Пузырьки}} в шаблоне!

я продлить, но я действительно не знаю, если это правильный способ сделать то, что вы хотите!

Смежные вопросы