4

我需要以只读模式显示表单,我正在使用 angular-formly 创建基于 Json 的表单。检查了适用于文本输入的链接http://angular-formly.com/#/example/other/read-only-form,请建议如何为 radio 、 multicheckbox 和 checkbox 设置只读

4

1 回答 1

1

我们通过 jQuery 来实现:

   $(document).ready(function () {
            $('input').click(function (e) {
                e.preventDefault();
            });
        });

或者,如果您想“假装”您正在使用“角度”来执行此操作,即使您实际上正在使用 jQuery,并且想要输入更多代码来编写完全相同的东西(从字面上看,它只会运行jQuery 中的上述代码作为 angular.element 是 jQuery 的“别名”——直接来自 angular 文档:https ://docs.angularjs.org/api/ng/function/angular.element ),您可以执行以下操作:

   angular.element(function() {
        angular.element('input').trigger('click')(function(e) {
            e.preventDefault();
        };
   });

这样你就可以看起来很酷,并且会吐出诸如“将 Angular 和 jQuery 一起运行是不好的做法”之类的废话,因为你不知道自己在说什么,只是在某处阅读。

这适用于所有输入字段。如果您有按钮或带有按钮的日期选择器等,最简单的方法是在表单中的模型上设置一个只读属性,然后在您希望它只读的页面上将其设置为 true,然后设置 ng-show在按钮上:ng-show="!model.readOnly"

于 2017-03-23T15:23:17.603 回答