未定义requirejs angularjs控制器

克里希

当我尝试动态加载控制器时,出现以下错误:sideCtrl&p1 = not%20aNaNunction%2C%20got%20undefined

但对于第1页,该代码可以正常工作。这是我的代码:

main.js:

require.config({
    paths: {
        jquery: ['//ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min', 'lib/jquery/jquery_2.0.0.min.js'],
        angular: ['//ajax.googleapis.com/ajax/libs/angularjs/1.2.16/angular.min', 'lib/angular/angular_1.2.16.min'],
        angularRoute: ['//ajax.googleapis.com/ajax/libs/angularjs/1.2.16/angular-route.min', 'lib/angular-route/angular-route_1.2.16.min']
    },
    shim: {
        'angular' : {'exports' : 'angular'},
        'angularRoute': ['angular']
    },
    deps: ['app']
});

config.js:

define([],function(){
  function config($routeProvider) {
    $routeProvider
      .when('/page1', {
        templateUrl: 'templates/page1.html', 
        controller: 'mainCtrl'
      })
      .when('/page2', {
        templateUrl: 'templates/page2.html',         
        resolve: {
            load: function($q, $route, $rootScope) {

                var deferred = $q.defer();

                var dependencies = [
                    'sideCtrl.js'
                ];

                require(dependencies, function () {
                    $rootScope.$apply(function() {
                    deferred.resolve();
                    });
                });
                return deferred.promise;
            }
        }
      })
      .otherwise({redirectTo: '/page1'});
  }
  config.$inject=['$routeProvider'];

  return config;
});

app.js

/*global require*/
'use strict';

define([
    'angular','angularRoute', 'mainCtrl', 'config'
    ], function (angular, angularRoute,mainCtrl,config) {
        var app = angular.module('app', ['ngRoute']);
        app.config(config);
        app.controller('mainCtrl', mainCtrl);


        angular.bootstrap(document, ['app']);       
        return app; 
}); 

sideCtrl.js:

"use strict";
define(['app'], function (app) {

    app.controller('sideCtrl', ['$scope',
        function ($scope) {
            console.log("hello world");
            $scope.names="krish";
            console.log("sideCtrl calling");
        }
    ]);
    console.log(app);
    return app;
});

page2.html

<div ng-controller="sideCtrl">
 asdasdas
    {{names}}

</div>
约翰耶里科

动态添加控制器需要您使用当前的活动提供程序进行注册,因此您不能使用常规的“ app.controller”进行注册,您需要做的是通过$ controllerProvider.register进行注册

此致

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

AngularJS 1.3.7中未定义控制器

找不到AngularJS控制器,未定义

AngularJS控制器显示未定义?

AngularJS控制器不是函数,未定义

AngularJS显示了控制器的未定义函数

Angularjs 控制器方法 arg 未定义

AngularJS:使用Jasmine与控制器测试指令时控制器未定义

未定义参数“控制器”

为什么未定义控制器?错误:未定义的索引:控制器

AngularJS:控制器中未定义工厂函数

AngularJS-ng-repeat中的表格在控制器中未定义

angularJS解决:在控制器“无法读取未定义的属性”目标”中

在控制器中未定义AngularJS模态对话框表单对象

AngularJS:指令将对象添加到 $scope 但在控制器中未定义

控制器xxx不是AngularJS中未定义的函数

scope()函数在AngularJS控制器中返回未定义

使用指令时ngModel未定义-AngularJS控制器

AngularJS-错误控制器不是函数,未定义

AngularJS控制器:无法设置未定义的属性“查询”

AngularJS:为什么我的控制器从服务调用中得到“未定义”?

AngularJS TypeScript控制器类指令中未定义作用域变量

AngularJs 1.5 ES6:控制器中未定义的绑定

AngularJS:为什么在我的ES6控制器中未定义$ scope?

在AngularJS指令中使用控制器中的ajax请求未定义作用域

AngularJS:注入控制器后,工厂始终是未定义的

AngularJS $ scope.foo设置了服务,但后来在同一控制器中未定义

AngularJS 1.7.9 从控制器到组件的绑定变量提供未定义的值

定义AngularJS控制器参数

AngularJS:无法定义控制器