Angularjs将控制器与文件分开

时间:2014-06-04 08:42:04

标签: javascript angularjs

在关注AngularJS的每个教程中,我看到所有控制器都在一个文件controllers.js中。

我认为,分离文件中的控制器更实用。

问题是:

如何在AngularJS中创建分离的控制器? 如何将控制器CRUD方法放在Controller中(具有这样的结构)?

Controller Users
 - method get 
 - method add 
 - method edit
 - method delete 

感谢任何帮助和示例如何。

2 个答案:

答案 0 :(得分:1)

我建议这个approch(见下面的例子)

使用Javascript:

// first file, must be include in first in your HTML
var example = angular.module('example', []);

example.factory('IndexModel', function() {
  return {
    get: function() {
      return 'index controller';
    }
  };
});

example.controller('Index', function($scope, IndexModel) {
  $scope.name = IndexModel.get();
});

// other file
var example = angular.module('example'); // angular module is accessible like this

example.factory('UserModel', function() {
  return {
    get: function() {
      return 'user controller';
    }
  }
});

example.controller('User', function($scope, UserModel) {
  $scope.name = UserModel.get();
});

Codepen:http://codepen.io/anon/pen/bAvEl

答案 1 :(得分:0)

 angular.module('controllers', []);

在你的角度应用初始化代码上添加它,然后在每个控制器文件中添加如下内容(并且obvs在html中引用脚本文件):

(function() {
  angular.module('controllers').controller('UserController', function($scope, $http) {
    // your crud methods
    $http.get('your-user-rest-url').success(function(result) {
      return $scope.user = result;
    });
  });
}).call(this);