Все привет! Есть проблемка с прокидкой данных и их биндингом в кастомную директиву.
При прокидке через ngModel данных в кастомную директиву с локальным scope, данные не биндятся.
Моя первая директива это
input
форма. Если быть точнее, это двойной
ng-repeat
темплейт, который бежит по обьекту шаблона и данным, сравнивает их и создает форму с инпутами. Все работает отлично, но я решил сделать
input
кастомной директивой. Вот результат:
<div ng-repeat="item in head">
<div ng-repeat="(key, value) in data" ng-if="key === item.name">
<labe>{{item.title}}</label>
<div>
<!-- Моя кастомная директива инпутов, которая привязывает "data[key]" -->
<custom-tag type="item.type" tag-class="form-control" ng-model="data[key]"></custom-tag>
</div>
</div>
</div>
<div class="control-group">
<!-- Еще одна директива (это кнопка сохранения), которая в конечном результате забирает данные с инпутов и обновляет/сохраняет модель -->
<twins-buttons config="buttons" data="data"></twins-buttons>
</div>
И вот код моей кастомной директивы 'input'
.directive('customTag', function() {
return {
scope: {
type: "="
},
require: '^ngModel', // Запрашиваю ng-model с parrent scope, так как, у этой свой локальный скоуп
restrict: 'E',
compile: function(el, attr) {
var input = angular.element('<input/>'); // далее создаю инпут элемент
el.replaceWith(input); // после чего меняю кастомный тег на созданный инпут
return function linking($scope, el, attr, ngModel) {
// ngModel - как я понима должна быть ссылка на модель
//
var mod = ngModel.$ViewValue;
el.attr('ng-model, mod) // поэтому создаем тег и добавляем туда наше значение из parent scope
Но значение не связывается, может кто подскажет в чем причина? Что упустил?