Я чувствую, что мне не хватает фундаментальной концепции директив Angular.
Ссылаясь на этот Plnkr: http://plnkr.co/edit/WWp9lB6OvxHL8gyBSU5b?p=preview
У меня есть модель:
{
message: string,
value: number
}
И у меня есть директива itemEditor для редактирования этой модели:
.directive('itemEditor', function() {
return {
replace: true,
templateUrl: 'item.editor.html',
require: 'ngModel',
model: {
item: '=ngModel'
}
};
})
Но я хочу делегировать редактирование значения пользовательскому элементу управления:
.directive('valuePicker', function() {
return {
replace: true, // comment this to make it work
templateUrl: 'value.picker.html',
require: 'ngModel',
scope: {
ngModel: '='
},
controller: Controller
};
function Controller($scope, Values) {
$scope.values = Values;
console.log({scope:$scope});
}
})
В настоящее время этот код дает ошибку:
Error: $compile:multidir
Multiple Directive Resource Contention
Комментарий replace: true позволит этому коду работать. Однако я теряю инструкции по стилю из родительского шаблона. IE: класс form-control не объединяется с элементом select.
Каков угловой способ сделать эту работу?