Я установил $rootScope._ = window._; in app.run and $scope._ = _;
$rootScope._ = window._; in app.run and $scope._ = _;
в контроллере. Однако, когда я пытаюсь оценить через _.includes, переменные внутри оцениваются отлично (я вижу это, проверяя элемент), но ng-disabled не оценивает какое-либо логическое значение.
<li data-ng-repeat="acLink in accordion.links">
href="#/{{acLink.domain}}/{{acLink.id}}" uib-tooltip="{{acLink.title}}" ng-disabled="_.includes({{allowedRoles}},{{acLink.role_d}})" style="color:#4d4d4d">{{acLink.title}}</a>
</li>
<a href="#/abc/home" uib-tooltip="CBOE Home" ng-disabled="_.includes(["abc", "xyz"],'abc')" style="color:#4d4d4d" class="ng-binding" aria-disabled="false"> Home</a>
Я получаю следующую ошибку:
angular.min.js:103 Error: [$parse:syntax]
at http://localhost:63342/dashboard_core/vendor/angular/angular.min.js:6:416
at hb.throwError (http://localhost:63342/dashboard_core/vendor/angular/angular.min.js:190:254)
at hb.primary (http://localhost:63342/dashboard_core/vendor/angular/angular.min.js:189:477)
at hb.unary (http://localhost:63342/dashboard_core/vendor/angular/angular.min.js:197:82)
at hb.multiplicative (http://localhost:63342/dashboard_core/vendor/angular/angular.min.js:196:324)
at hb.additive (http://localhost:63342/dashboard_core/vendor/angular/angular.min.js:196:182)
at hb.relational (http://localhost:63342/dashboard_core/vendor/angular/angular.min.js:196:48)
at hb.equality (http://localhost:63342/dashboard_core/vendor/angular/angular.min.js:195:418)
at hb.logicalAND (http://localhost:63342/dashboard_core/vendor/angular/angular.min.js:195:294) <a href="#/{{acLink.domain}}/{{acLink.id}}" uib-tooltip="{{acLink.title}}" ng-disabled="_.includes({{allowedRoles}},{{acLink.role_d}})" style="color:#4d4d4d" class="ng-binding">
Я неправильно понял фрагмент кода. Теперь я вижу, что вы генерируете те значения, которые хотите включить, используя интерполяцию. В этом случае предложение Тушара переместить функцию в код вашего контроллера, а не передавать lodash в представление, является лучшим вариантом.
// HTML
ng-disabled="includes(allowedRoles, acLink.role_d)"
// JS
$scope.includes = function(list, item) {
_.includes(list, item);
}
вы должны создать для этого отдельную функцию. пример:
$scope.isDisabled = function(){
return _.includes(["abc", "xyz"],'abc');
};
<a href="#/abc/home" uib-tooltip="CBOE Home" ng-disabled="isDisabled()" style="color:#4d4d4d" class="ng-binding" aria-disabled="false"> Home</a>