Я пытаюсь создать настраиваемую директиву для выпадающего элемента управления в AngularJS 1.4.4. Я могу обработать выбранное событие, но я не могу получить привязку для того, что выбрано в раскрывающемся списке.Пользовательская директива: выпадающее выбранное значение не привязано
Я хочу назвать это из разметки Html следующим образом.
<my-dropdown-list source="myList" destination="mySelection" />
Угловая js custom директива здесь.
(function() {
var directive = function($compile) {
return {
restrict: 'E',
scope: {
model: '=source',
selectedValues: '=destination'
},
controller: function($scope) {
$scope.onSelChange = function() {
alert('called');
console.log($scope.selectedItem.Code, $scope.selectedItem.Name);
};
// $scope.selectedItem is always undefined here.
},
link: function ($scope, $elem) {
var rowHtml =
'<select ng-options="item as item.Name for item in model" ng-model="selectedItem" ng-change="onSelChange()"></select>';
$elem.html(rowHtml);
$compile($elem.contents())($scope.$new());
}
};
};
my.directive('myDropdownList', directive);
})();
Я новичок в Угловое, так что это может быть что-то маленькое, что я пропустил здесь, но я не могу показаться, чтобы получить значение «SelectedItem»
Это классическая "точечная нотация" проблема. Вам нужно иметь свои свойства привязки для объекта - 'myModel.mySelection', чтобы связать его с директивой. – codemonkey
Проблема в том, что вы создали новую область для html, добавленного в шаблон своей директивы. Но в контроллере у вас есть доступ к его родительской области, а родительская область не может видеть его дочерний элемент. – alisabzevari