2016-06-14 4 views
0

Я использовал настраиваемую директиву для выпадающего списка и привязывал dropwdown с использованием метода link(), но ng-change Событие не стреляет.Угловое событие JS-ng-change не срабатывает

app.directive("reportfId", function(){ 
return { 
    restrict:'AE', 
    template: '<select id="item" multiple="multiple" ng-model="item" class="form-control" style="display:inline-block; " ng-change="binddl()" ></select>', 
    link: function(scope, element, attrs, ctrl) 
    { 
     $.each(scope.freports, function (i, value) { 
      element.append(new Option(value.name, value.id, false, false)); 
     }); 
     element.multiselect({ multiple: false, minWidth: 158, selectedList: 1, height: 100, noneSelectedText: "Select Report ", header: "Select Report" }).multiselectfilter(); 

    } 
     } 
}); 
+0

Где определена функция binddl? – Silvinus

ответ

0

Если метод ng-change="binddl()", binddl() привязывать дл() определена вне директивы, то она не будет работать, как вы создаете другую область в директиве.

link: function(**scope**, element, attrs, ctrl) 

Так, из-за этого ng-isolate-scope будет активен на код шаблона директивы .. Следовательно, любая внешняя функция, переменная модель не будет работать в коде шаблона директивы ..

Проверить AngularJS: Call external functions from directive?

+0

, но когда я свяжу dropwdown с помощью ng-option, то событие ng-change будет запущено. –

Смежные вопросы