Я имею следующую директивуКак внедрить услугу в зависимости от атрибута директивы в угловом?
directiveModule.directive('typeahead', function() {
return {
restrict: 'E',
transclude: true,
scope: 'isolate',
templateUrl: 'assets/partials/common/typeahead.html' ,
controller: ["$scope","$element","$attrs","$transclude", "Event",
function ($scope,$element,$attrs,$transclude, Event){
console.log(eval($attrs.service + ".query();"));
$scope.search = function(){ console.log("Searching for:" + $scope.selectedValue) };
$scope.selectedValue = "";
$scope.providedItems = [];
}],
};
});
С следующему шаблону:
<div>
<input ng-change="search()" ng-model="selectedValue" ng-click="log()" autocomplete="off" type="text"/>
<ul class=".typeahead">
<li ng-repeat="item in providedItems">{{eval(item + "." + descriptor)}}</li>
</ul>
и следующий вызов внутри мой взгляд:
Я хотел бы, чтобы услуги атрибут оценивается во время выполнения при вводе в контроллер в директиве. Так что там, где он теперь говорит
controller: ["$scope","$element","$attrs","$transclude", "Event",
function ($scope,$element,$attrs,$transclude, Event){
Было бы сказать, что-то подобное:
controller: ["$scope","$element","$attrs","$transclude", eval($attrs.service),
function ($scope,$element,$attrs,$transclude, eval($attrs.service)){
Однако я не могу получить доступ к $ AttrS от объема внутри вызова directiveModule.
Если есть какой-либо способ доступа к объявленной в представлении службе, которой было бы достаточно. Пожалуйста помоги!
Не могли бы вы объяснить немного более ясное, не уверен, с чего начать. Мне нужен способ выбора Службы для запроса во время выполнения. –
С самого начала, что вы ожидаете от '$ attrs.service'? Приведите пример. –
Я сам решил проблему. $ attrs.service - это угловая служба, которую я хочу динамически вводить. –