2

прослеживание на этот вопрос: AngularJS data bind in ng-bind-html?

Что делать, если ценности, которые я хочу, чтобы интерполировать прикрепляются к нг повторами созданной области?

myDict = {'Suggestion' : $interpolate('Vote here if you think {{player.name}} is right!')($scope) 
      ...};// $scope is wrongly passed here as 'player' is not a scope variable, 

А потом

<div ng-repeat="player in players"> <span ng-bind-html="myDict['Suggestion']"></span> </div>

Можно ли сделать такую ​​вещь без пользовательской директивы?

ответ

1

К счастью, ты один решающим при вызове функции:

$scope.myDict = function (scope) { 
    return {'Suggestion' : $interpolate('Vote here if you think {{player.name}} is right!')(scope); 
} 

Затем в HTML:

<div ng-repeat="player in players"> 
    <span ng-bind-html="myDict({player: player})['Suggestion']"></span> 
</div> 

Это будет вызывать функцию один раз для каждого игрока с объектом буквального, и передать это как «область» для вызова $interpolate.

Предупреждение: если у вас есть тысячи записей, вызов функции каждый раз может иметь какой-то перфоманс. удар. Единственный способ, которым я могу думать, - использовать {{players[$index].name}} в вызове $interpolate ...

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

  • Нет связанных вопросов^_^