继承所有子元素中的angularjs函数

时间:2014-09-10 09:14:38

标签: javascript angularjs angularjs-directive

我创建了一个显示这样的日历的指令:

app.directive('noeDatepicker', ['$parse', 'datetimeService', function ($parse, datetimeService) {
    return {
        restrict: 'E',
        templateUrl: '/app/directives/templates/datepicker.html',
        scope: {
            model: '=',
            withisrequired: '@'
        },
        require: '^form',
        replace: true,
        link: function (scope, element, attrs, ctrl) {
            scope.buttonId = 'date_icon_' + attrs.id;
            scope.inputId = 'date_input_' + attrs.id;
            scope.cancelId = 'date_cancel_' + attrs.id;

            setTimeout(function () {
                Calendar.setup({...});

        }
    };
}

});

我的模板是这样的:

<div ng-model="model" class="form-inline">
    <input id="{{inputId}}" class="form-control" type="text" isrequired="{{withisrequired}}" ng-model="model" placeholder="1111/01/01" />
    <img id="{{cancelId}}" src="/Content/noe/assets/image/icon/Cancle.svg" width="22" height="22" />
    <img id="{{buttonId}}" src="/Scripts/jalalijscalendar/cal.png" />
</div>

但我的问题是,当我想在此指令中添加例如ng-readonly时,它只是将readonly属性添加到div元素,而input元素不是readonly并且它接受来自用户的输入(参见下面的代码):

<noe:datepicker model="viewModel.date" id="date1"  name="date1" ng-readonly="true" />

我希望这个ng-readonly函数也使div标签中的所有子元素只读,而不仅仅是为div元素添加readonly proptety!

我该怎么做?

1 个答案:

答案 0 :(得分:1)

使用

更新noeDatepicker

范围:{       只读:&#39; = ngReadonly&#39 ;,       ...     },     模板:<div> <input ng-readonly="readonly"/> </div> ...

基本上,您需要为要设置的子元素添加ng-readonly。