Интерполяция ng-attr не работает с ng-repeat - PullRequest
0 голосов
/ 08 октября 2019

Я пытаюсь сгенерировать вкладки, которые по желанию имеют атрибут if -missions-keep, если свойство «permissions» установлено в структуре данных, итерируемой для создания вкладок. Вот как выглядит структура данных:

  $scope.tabs = [
    {heading: "Details", 
     route:"facilities-view.details"
    },
    {heading: "Devices",
     route:"facilities-view.devices",
     style:"fas fa-fw fa-lg fa-mobile",
     permissions:"'mobile_device_manage'"
    },...
 ];

Это HTML-код для вкладок с директивами AngularJS:

<uib-tab ng-repeat="t in tabs" index="t.route" select="showTab(t.route)"
         ng-attr-if-permission-keep = "t.permissions">

Я понимаю, как работает ng-attr, если выражениев этом случае "t.permissions" не определено, тогда атрибут не добавляется к элементу. В противном случае атрибут добавляется со значением выражения. Но кажется, что даже если выражение оценивается как неопределенное, оно добавляет атрибут со значением определено. Есть ли что-то другое в использовании ng-attr в элементе с повторением ng?

1 Ответ

0 голосов
/ 08 октября 2019

Выражение необходимо интерполировать:

<uib-tab ng-repeat="t in tabs" index="t.route" select="showTab(t.route)"
         ng-attr-if-permission-keep = "{{t.permissions}}">

См. Руководство разработчика AngularJS - Интерполяция - ngAttr для привязки к произвольным атрибутам .

...