2013-10-17 31 views
34

ng modelimi 'dış yönerge' içinden 'iç yönerge' (dış yönerge şablonunda bulunan) 'a geçirmek istiyorum.İç içe geçmiş yönergelerin içinde geçiş modeli

Bunu yapmanın doğru yolu nedir?

HTML kodu:

<body> 
    <outer-directive ng-model="prop" /> 
</body> 

ve direktif kodu:

angular.module('app', []).directive('outerDirective', function(){ 
    return { 
     template: '<inner-directive ng-model="prop" />', 
     link: function() { ... } 
    } 
}); 
+1

Çok sezgisel: http://jsfiddle.net/cherniv/UAvaB/ – Cherniv

cevap

44

Sen değişkeni ile (documentation, bölüm "Yönerge Tanım Nesne" bölümüne bakınız) çift yönlü bağlama ayarlayabilirsiniz tüm diğer yönergeleri olarak ngModel nitelik,:

<my-directive ng-model="foo"></my-directive> 
myApp.directive('myDirective', function() { 
    return { 
     template: '<div><input type="text" ng-model="ngModel" /></div>', 
     replace: true, 
     scope: { 
      ngModel : '=', 
     }, 
    }; 
}); 

Fiddle

+3

Teşekkürler! O güzel çalışıyor Ben bu kolay olurdu bu yüzden ben hiçbiri işe yaramazsa bağlantı fonksiyonu içinde jquery kullanarak bazı korkunç şeyler denedim inanamadım ... – user2794782

+5

Bu dış model sorunu ele '$ bozulmamış = true' ve girişin modeli '$ dirty = true'. Bu doğrulama durumu değişikliklerini yönerge düzeyinde 'ng-model' olarak yaymanın bir yolu var mı? – jusopi

+2

Yönergeler daha sonra açısal sürümlerde yalıtılmış bir kapsama sahipse, bu çalışmaz. –

0

i kirli formu direktifinde formu geçmek ve ayarlamanız gerekir düşünüyorum elle

<directive directive-form="editForm" ></directive> 

scope: { 
directiveForm:"=" 
}, 
link: function (scope, $elem, $attrs) 
{ 
    scope.directiveForm.$setDirty(); 
}