在嵌套指令中传递ng-model

use*_*782 36 angularjs angularjs-directive

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

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

HTML代码:

<body>
    <outer-directive ng-model="prop" />
</body>
Run Code Online (Sandbox Code Playgroud)

和指令代码:

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

Bla*_*ole 44

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

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

Fiddle

  • 这没有解决外部模型的问题是`$ pristine = true`和输入的模型`$ dirty = true`.有没有办法将这些验证状态更改传播到指令级"ng-model"? (5认同)
  • 如果指令在以后的角度版本中具有隔离范围,则这不起作用. (4认同)
  • 谢谢!它的工作非常漂亮我不相信它会那么容易所以我在链接函数中使用jquery尝试了一些可怕的事情,它们都没有工作...... (3认同)