web-dev-qa-db-fra.com

Passage de ng-model dans des directives imbriquées

Je veux passer mon ng-model de la directive 'externe' à une 'directive interne' (contenue dans le modèle de directive externe).

Quelle est la bonne façon de le faire?

Code HTML:

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

et code de directive:

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

Вы можете установить двунаправленную привязку (см документация , раздел "Объект определения директивы".) С переменной в атрибуте ngModel, как и с любыми другими директивами:

<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

44
Blackhole

je pense que vous devez passer le formulaire dans la directive et définir le formulaire sale manuellement

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

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