2015-07-16 4 views
2

Я пытаюсь выполнить ng-click назначить переменную (успех) внутри ng-repeat и затем использовать это значение вне ng-repeat (failure) следующим образом:создание глобальной переменной, которая назначается внутри ng-repeat

<div class="stocksNav col s1"> 
     <div class="myStockList" ng-repeat="stocksInPortfolio in ctrl.myPortfolio.stocksInPortfolio"> 
     <ul> 
      <li style="position: relative"><a href ng-click="ctrl.tab = stocksInPortfolio.stock._id">{{stocksInPortfolio.stock.name | limitTo:10}}</a></li> 
     </ul> 
     <div class="myStockView" ng-show="ctrl.tab === stocksInPortfolio.stock._id"> 
     <div class="{ active:ctrl.tab === stocksInPortfolio.stock._id }"> 
     </div> 
    </div> 
    </div> 
</div> 
<div ng-include="'/app/dashboard/partials/myIndividualStock.html'"></div> 

парциальное хочет затем вызвать ctrl.tab использовать это событие нажмите присвоенные значения, такие, что если я нг кнопкой мыши на любой другой экземпляр функции нг-повтора переменная ctrl.tab будет переназначить, но назначение ctrl.tab не сохраняется за пределами div ng-repeat. любая мысль?

ответ

2

Директива ng-repeat (как и многие другие директивы) создает новую область видимости, и для доступа к переменной области родительского объекта она должна быть объектом. Другими словами, вместо ctrl.tab инициализируйте объект $scope.something = {} в вашем контроллере, затем используйте ctrl.something.tab в своем шаблоне (замените something на имя, соответствующее вашему приложению).

+0

Я думаю, что мой вопрос был немного непонятным, но я решил это уже благодаря! – justin