Я пытаюсь создать directive
в угловом, чтобы заменить обычный выпадающий список. Мне нужно установить динамическое выражение в ng-options
, но, похоже, оно не работает внутри директивы.ng-options с динамическим выражением не работает
Он отлично работает вне его.
Это директива
angular.module('app.dropdown',[])
.directive('swDropdown',[ function (){
return {
restrict: 'E',
replace: true,
template:'<div><select ng-model="swModel" ng-options="{{expression}}" ></div>',
link: link,
scope:{
swOptions:"=",
swLabel:'@',
swValue:'@',
swModel:"="
}
};
function link (scope, element, attrs) {
scope.defaultText = angular.isDefined(attrs.swDefaultText)?attrs.swDefaultText:'Choose';
scope.selected = scope.defaultText;
scope.expression = 'item as item.name for item in swOptions';
}
}]);
контроллер Пример:
angular.module('app',['app.dropdown']).controller('Ctrl', function($scope){
$scope.model="";
$scope.expression = 'item as item.name for item in options';
$scope.options = [
{id:1,name:'hola'},
{id:2,name:'chau'}]
});
Html:
<body ng-app="app" ng-controller="Ctrl">
<h1>Hello Plunker!</h1>
Working dropdown<br/>
<select ng-model="model" ng-options="{{expression}}"></select>
<br/>
Not working inside a directive
<sw-dropdown sw-model="model" sw-options="options"></sw-dropdown>
</body>
Любой ключ о том, почему он не работает?
Спасибо!
Это хороший вопрос, но я предлагаю включить ** соответствующие ** части кода в самом вопросе. Вопрос должен быть самоподдерживающимся, даже если связь нарушена. –
Спасибо @NewDev, обновлено! – Mustela