ngModel通过包装器传递给子指令

时间:2015-06-30 09:57:27

标签: angularjs angularjs-directive angular-ngmodel

让我们想象一下,我们有一个子指令<child/>,它需要ng-modelng-change并对它们采取一些行动。我们有两种包装<w1/><w2/>,包含<child/>

  • W1应将ng-model直接传递给<child/>
  • W2应该将一些内部对象作为模型传递给<child/>

在第一种情况下,我会使用require: '^ngModel' 第二个:require: 'ngModel'但我需要他们同时工作

1 个答案:

答案 0 :(得分:0)

所以模型是简单的对象,可以轻松传递。

<wrapper ng-model="foo"></wrapper>

打包机:

module
.directive('wrapper', function () {
    return {
        restrict: 'E',
        template: "<child ng-model='ngModel'></child>",
        scope: {
            ngModel:'='
        },
        link: function ($scope) {
        }
    };
});

子:

module
    .directive('child', function () {
        return {
            restrict: 'E',
            require: 'ngModel',
            template: "<div>some wierd stuff</div>",
            scope: {
            },
            link: function ($scope, iElem, iAttr, ngModel) {
                var a = ngModel.$viewValue;
            }
        };
    });