javascript - Angular 负载定制 Controller

标签 javascript angularjs controller angularjs-directive

是否可以加载一个自定义 Controller ,指定 angularjs 中每个部分的文件名?

类似这样的事情:

 var demo = angular.module('demo', ['ngRoute', 'ui.bootstrap', 'demo.filters', 'demo.services', 'demo.directives', 'demo.controllers'])

    .config(['$routeProvider', function ($routeProvider) {


        $routeProvider.when('/custom', 
                   {
                      templateUrl: 'partials/custom.html', 
                      controller:   customController.js
                    });

    });

最佳答案

按照 require js 的工作方式,您需要像这样设置您的应用程序:

var demo = angular.module('demo', ['ngRoute', 'demo.filters', 'demo.services', 'demo.directives']);

demo.config(['$routeProvider',
  function($routeProvider) {
    var _routes = ['/custom', '/custom2'];
    _routes.map(function(route) {
      var _cntrlName = route.slice(1, route.length);
      require([_cntrlName + "Controller"], function(controller) {
        $routeProvider.when(route, {
          templateUrl: '.' + route + '.html',
          controller: controller
        });
      });
    });
  }
]);

您的 Controller 代码必须如下所示:

define(function(require, exports, module) {
  function controller($scope) {
    $scope.testvar = "test 1!";
  }
  module.exports = controller;
});

这里有一个 plunker 来演示这一点 http://plnkr.co/edit/N5fE5rezf6eM8jDIz23w?p=info

关于javascript - Angular 负载定制 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26119465/

相关文章:

javascript - 如何随时获取父组件中的子组件输入元素

javascript - 在渲染之前 react DOM offsetHeight

javascript - Sequelize 。如何查找多个参数

grails - Grails中频条件的语法

asp.net-mvc - ASP.NET MVC以编程方式获取 Controller 列表

javascript - 动态angularjs模板

angularjs - Angular UI Router - 何时使用抽象模式/嵌套/命名 View ?

javascript - MEANJS 样板文件 : where to include custom javascript files?

javascript - 在 Javascript AngularJS 中从旧帖子中确定新帖子,过滤与否

ruby-on-rails - "No route matches"错误,但 rake 路由找到它