在嵌套指令中传递ng-model

时间:2013-10-17 14:46:04

标签: angularjs angularjs-directive

我想将我的ng-model从'outer-directive'传递给'inner-diretive'(包含在外部指令模板中)。

这样做的正确方法是什么?

HTML code:

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

和指令代码:

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

2 个答案:

答案 0 :(得分:44)

您可以使用ngModel属性中的变量设置双向绑定(请参阅documentation,“指令定义对象”部分),与任何其他指令一样:

<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

答案 1 :(得分:0)

我认为您需要在指令中传递表单并手动设置表单

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

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