我创建了一个显示这样的日历的指令:
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!
我该怎么做?
答案 0 :(得分:1)
使用
更新noeDatepicker范围:{
只读:&#39; = ngReadonly&#39 ;,
...
},
模板:<div> <input ng-readonly="readonly"/> </div> ...
基本上,您需要为要设置的子元素添加ng-readonly。