У меня есть настраиваемая директива, отображающая выпадающий список.Обновление параметров ng, размещенных по директиве
Возможно ли динамическое повторное заполнение ng-параметров из источника данных, который поступает от контроллера, на котором размещена директива.
Источник данных исходит от службы. В настоящее время он работает хорошо из исходного массива, переданного в директиву, но при добавлении новых данных (от контроллера/услуг для этого массива я хотел бы, чтобы обновить список элементов.
Любой помощь?
EDIT :
Это, как я использую свою директиву
<select-item-obj-from-array datasource="ctrl.ActivityAddresses" ng-model="form.Activity.AddressID" name="AddressID" value="AddressID" label="City" .... />
Моя директива выглядит следующим образом:.
app.directive('selectItemObjFromArray', function() {
return {
restrict: 'E',
replace: true,
template: function (element, attrs) {
var tpl = '';
tpl += "<div><div class=\"form-group clearfix\" >";
tpl += '<label for="' + attrs.name + '" class="col-lg-3 control-label">' + attrs.label + '</label>';
tpl += '<div class="col-lg-9">';
tpl += '<select ng-disabled="ngDisabled" name="' + attrs.name + '" ng-model="ngModel" chosen="datasource" ng-options="c.Name for c in datasource"></select>';
tpl += '</div>';
tpl += '</div>';
tpl += '</div>';
return tpl;
},
scope: {
ngModel: "=",
datasource: "="
},
link: function (scope, elem, attrs) {
var select = elem.find("select").eq(0);
select.chosen();
scope.$watch(function() {
return select[0].length;
},
function (newvalue, oldvalue) {
if (newvalue !== oldvalue) {
select.trigger("chosen:updated");
}
});
scope.$watch(attrs.ngModel, function() {
select.trigger('chosen:updated');
});
}
};
});
если мой контроллер/сервис обновил ctrl.ActivityAddresses я не знаю, как «reinvoke» директиву, чтобы обновить DropDownList ..