我们应该在两个页面上共享控制器还是应该为不同的页面设置不同的控制器?

时间:2014-09-16 10:40:09

标签: angularjs

我正在使用角度Js进行应用,我对制作控制器很困惑。我的问题是,我们应该像在所有服务器端MVC项目中那样为一个实体创建一个控制器,或者我们应该为不同的页面设置不同的控制器。

例如,我们有一个实体用户

我们应该为用户创建一个控制器( userCtrl )并在所有页面中包含该控制器,例如创建用户,搜索用户和删除用户页面,第二个选项是为不同的控件创建不同的控制器像createUserCtrl,searchUserCtrl等页面?

3 个答案:

答案 0 :(得分:3)

理想情况下,我们应该有基于功能的控制器,而不是严格的视图。

答案 1 :(得分:2)

我们应该根据最佳实践为不同的视图使用不同的控制器。

答案 2 :(得分:0)

您实际上希望某种类型的provider存储像实体用户这样的公共对象。

然后可以将其扩展为在整个应用程序中的不同controllers中使用。

AngularJS Providers Documentation

Also here is an example that uses two different controllers on the same view extending a provider that shares data between them.

基本Factory提供程序示例。

angular.module('myApp',[])
.controller('myController',['contacts',function(contacts) {
    this.contacts = contacts;

}])
.factory('contacts',function() {
   return [
      {
        "_id": "540f0d1c29d786a159f9a27e",
        "name": {
          "first": "Francis",
          "last": "Strong"
        },
        "company": "ZILLAN",
        "email": "francis.strong@zillan.com",
        "phone": "+1 (921) 507-2998"
      },
      {
        "_id": "540f0d1cf078b6b0cf3ac56f",
        "name": {
          "first": "Johanna",
          "last": "Rosario"
        },
        "company": "GLASSTEP",
        "email": "johanna.rosario@glasstep.ca",
        "phone": "+1 (958) 425-3942"
      }]; 
});