加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc – Angularjs中每个视图应该有一个控制器吗?

发布时间:2020-12-16 07:01:34 所属栏目:asp.Net 来源:网络整理
导读:我来自asp.net mvc背景,最近开始使用 Angularjs.我有一个名为Account的简单实体,通过RESTful asp.net web api公开.我现在正在使用Angular创建其客户端.在客户端,我有创建,编辑,列表和详细信息等视图. 我应该为每个视图创建一个控制器,还是只有一个名为`accou
我来自asp.net mvc背景,最近开始使用 Angularjs.我有一个名为Account的简单实体,通过RESTful asp.net web api公开.我现在正在使用Angular创建其客户端.在客户端,我有创建,编辑,列表和详细信息等视图.

我应该为每个视图创建一个控制器,还是只有一个名为`accountsController’的控制器用于所有CRUD操作?这种情况下的标准做法是什么?

解决方法

不要像CRUD那样在“操作”方面寻找控制器,在这种情况下,yu是“与一个宁静的API交谈”,因为restful服务使用HTTP动词映射CRUD操作,如:

PUT,POST -> Create
GET       -> Read
POST      -> Update
DELETE    -> Delete

一个好的做法是创建角度服务并返回$资源供以后使用,将$资源映射到CRUD端点,如下所示:

angular.module('app').factory('Users',['$resource',function($resource) {
        return $resource('users',{},{
            update: {
                method: 'PUT'
            },deleteMember: {
                method: 'DELETE',url:'team/member/:userId/:teamId'
            },addMember: {
                method: 'POST',url:'team/member'
            },addTeam: {
                method: 'POST',url:'team'
            },deleteTeam: {
                method: 'DELETE',url: 'team/:teamId'
            },getTeam: {
                method: 'GET',teams: {
                method: 'GET',url: 'team/list/:orgId'
            }

        });
    }
]);

您可以重用该服务并将其注入任何其他服务或控制器,您的控制器越细.

在你想要修改UI的情况下,因为angular是声明性的而不是强制性的,不建议从控制器修改dom,你需要再次创建指令,指令可以在整个系统中重用.

坚持超薄控制器,创建服务和指令,你很高兴,最后我建议你使用yeoman作为工作流程并使用cg-angular生成器,它实现了很多东西的“最佳实践”,包括应用程序文件夹结构非常从一开始就很重要.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读