2012-06-16 4 views
2

Я хотел бы получить доступ к выражению области видимости, которое присваивается переменной, через выражение ng-repeat.eval on expression of ngrepeat

Итак, что я хочу сделать что-то вроде этого:

ng-repeat="variable in eval(key)" 

К сожалению, это не действует. Как я могу обойти это?

+0

Что вы имеете в виду? Это работает: http://jsfiddle.net/andytjoslin/BHA6M/ –

+0

правильно, но я хочу что-то вроде этого: http://jsfiddle.net/AmyyZ/1/ – zVictor

+0

Помните, что это область. $ Eval, а не scope.eval. Придется положить $. Я сказал это как ответ. –

ответ

2

Это будет работать:

HTML:

<div ng-controller="MyCtrl"> 
    <div ng-repeat="item in $eval(key)">{{item}}</div> 
</div> 

JS:

function MyCtrl($scope) { 
    $scope.key = "items"; 
    $scope.items = [1,2,3]; 
} 
​ 

http://jsfiddle.net/andytjoslin/n5h4U/

(отредактированный см комментарии)

+0

Я не знал существования $ eval или как его использовать. еще раз спасибо! Но, на самом деле, я думаю, что правильный и прямой ответ был бы немного другим, например: http://jsfiddle.net/3PGsV/1/ – zVictor

+0

Да, я просто сделал ng-init, чтобы сохранить его сукцином. –

+0

Согласен. Хотя он не отвечает на вопрос о ngrepeat. Я принял ваш ответ, потому что этого было достаточно для меня, но я думаю, что было бы лучше для будущих посетителей, если вы отредактируете ответ. – zVictor