Mam dyrektywę, która ma inną dyrektywę w swoim szablonie.Przeprowadź wyrażenie do dyrektywy
<nv-select ng-model="from" ng-options="item.name as item for item in from"></nv-select>
Tutaj staram się przechodzić wzdłuż wypowiedzi do ng-options
dyrektywy dziecięcej. Niestety, które zawsze daje mi następujący błąd
Error: Syntax Error: Token 'as' is an unexpected token at column ...
Jeśli mogę umieścić wyraz w ng-options
dyrektywy dziecka select
, to działa dobrze. Moja dyrektywa nv-select
wygląda następująco:
function() {
return {
restrict: 'E', // restrict to elements
replace: true,
transclude: true,
scope: {
ngModel: "=",
ngOptions: "&",
placeholder: '@'
},
template: [
'<div class="nv-select">',
'<select ng-model="ngModel" ng-options="ngOptions" ng-transclude></select>',
'<span class="icon suffix-icon-down">{{ text || placeholder }}</span>',
'</div>'
].join(''),
link: function (scope, elem, attr) {
var select = elem.find('select'),
copyValues = function (e) {
if (e.options) {
scope.text = angular.element(e.options[e.selectedIndex]).text();
}
};
copyValues(elem[0]);
elem.bind('click', function (event) {
elem.toggleClass('active');
});
select.bind('change', function (event) {
scope.$apply(function() {
copyValues(event.target);
});
});
}
};
};
nv-select
jest w zasadzie tylko owinięcie wokół <select>
włączyć niestandardowych stylizacji.
Czy muszę podać specjalne uwagi podczas przekazywania wyrażenia? Co ja robię źle?
Nie rozumiem, że w ogóle odpowiadasz. –