Я пытаюсь реализовать некоторые пользовательские функции Bootstrap Typeahed в новой директиве. Делая это, мне нужно вставить оригинальный Typeahed директиву в шахту, минуя его, мои параметры:Вставить директиву AngularJS в другую директиву
это оригинальная директива:
<div class="typeahead typeahead-lookup">
<input ng-model="vm.myModel"
uib-typeahead="item as item.Formatted for item in vm.refreshSearch($viewValue)"
typeahead-wait-ms="1000"
typeahead-min-length="1"
typeahead-editable="false"
placeholder="SEARCH..."
type="text"
class="form-control">
</div>
это мой заказ директива:
<select-lookup model="vm.myModel"
items="item as item.Formatted for item in vm.refreshSearch($viewValue)"
</select-lookup>
и вот как я пытаюсь его реализовать:
function selectLookup($compile) {
return {
restrict: 'E',
scope: {
model: "=",
items: "@"
},
compile: function(element, attrs) {
return function(scope, element, attrs) {
var template = '<div class="typeahead typeahead-lookup">' +
'<input ng-model="model"' +
'uib-typeahead="{{items}}"' +
'typeahead-wait-ms="1000"' +
'typeahead-min-length="1"' +
'typeahead-editable="false"' +
'placeholder="SEARCH..."' +
'type="text"' +
'class="form-control">' +
'</div>';
element.html(template);
$compile(element.contents())(scope);
};
}
};
}
I 'получаю проблемы с передачей параметров из моей директивы в оригинальную директиву Typeahead, особенно с «элементами». У меня ошибка: Expected typeahead specification in form of "_modelValue_ (as _label_)? for _item_ in _collection_" but got "{{items}}"
.
Кто-то может помочь мне решить эту проблему?
Спасибо Крис ... Я пробовал ваше решение, но, похоже, оно не работает. Я создал плунк здесь: http://plnkr.co/edit/IIcc3e7uE9FWDMzFPUqv?p=preview – wizzy
Синтаксис for for в синтаксисе оценивается с областью действия директивы, и нет доступных состояний. Обновлено плункер: http://plnkr.co/edit/3WowFCMa7zF8JQPlw498?p=preview – ChrisY
Большое спасибо! – wizzy