3

My angular test codes work fine with angular alone. But I get errors when I want to use requirejs to load angular's code/ app.

HTML,

<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>RequireJS + AngularJS</title>
        <meta charset="utf-8">

        <script data-main="js/main" src="js/lib/require/require.js"></script>

        <!--
        <script src="js/angular/angular.min.js"></script>
        <script src="js/angular/angular-route.js"></script>
        <script src="js/app.js" type="text/javascript"></script>
        -->

    </head>

    <body>

        <div ng-app='MyTutorialApp'>
            <ng-view></ng-view>
        </div>

    </body>

</html>

main.js,

require.config({
    baseUrl: 'js',

    paths: {
        jquery: 'lib/jquery/jquery-min',
        angular:'lib/angular/angular.min',
        angularrouter:'lib/angular/angular-route'
    },

     shim: {
        jquery: {
          exports: '$'
        },
        angular: {
          exports: 'angular'
        },
        angularrouter: {
          deps:["angular"],
          exports: 'angularrouter'
        }
      }
});

require([
    'app',
    'angularrouter'
], function(App){

});

app.js,

define([
    'angular'
], function(angular){

    var app = angular.module('MyTutorialApp',['ngRoute']);

    app.config(function($routeProvider){

        $routeProvider
        .when("/",
        {
            templateUrl: "template/index.html",
            controller: "MainController"
        })
        .when("/list1",
        {
            templateUrl: "template/app.html",
            controller: "AppCtrl"
        })
        .when("/list2",
        {
            templateUrl: "template/app.html",
            controller: "AppCtrl2"
        })
        .when("/:module/:method/",
        {
            templateUrl: "template/app.html",
            controller: "AppCtrl2"
        });
    });

    app.controller("AppCtrl", function($scope, $route){
        //console.log($route);
        $scope.model = {
          message: "This is my app!!!"
        };
    });

    app.controller("AppCtrl2", function($scope, $route){
        console.log($route.current.params.module);
        console.log($route.current.params.method);
        //console.log($param);
        $scope.model = {
          message: "Hellw world! This is my app!!!"
        };
    });

    app.controller("MainController", function($scope){

        //$scope.thisIsAScopeProperty = 'template/index.html';

        $scope.people = [
            {
                id: 0,
                name: 'Leon',
                music: [
                    'Rock',
                    'Metal',
                    'Dubstep',
                    'Electro'
                ],
                live: true
            },
            {
                id: 1,
                name: 'Chris',
                music: [
                    'Indie',
                    'Drumstep',
                    'Dubstep',
                    'Electro'
                ],
                live: true
            },
            {
                id: 2,
                name: 'Harry',
                music: [
                    'Rock',
                    'Metal',
                    'Thrash Metal',
                    'Heavy Metal'
                ],
                live: false
            },
            {
                id: 3,
                name: 'Allyce',
                music: [
                    'Pop',
                    'RnB',
                    'Hip Hop'
                ],
                live: true
            }
        ];
        $scope.newPerson = null;
        $scope.addNew = function() {
            //alert(1);
            console.log($scope.newPerson);
            if ($scope.newPerson !== null && $scope.newPerson !== "") {
                //alert(2);
                $scope.people.push({
                    id: $scope.people.length,
                    name: $scope.newPerson,
                    live: true,
                    music: [
                        'Pop',
                        'RnB',
                        'Hip Hop'
                    ]
                });
            }
        };
    });

    return app;
});

error,

Error: [$injector:modulerr] http://errors.angularjs.org/1.2.6/$injector/modulerr?p0=MyTutorialApp&p1=%5B%24injector%3Amodulerr%5D%20http%3A%2F%2Ferrors.angularjs.org%2F1.2.6%2F%24injector%2Fmodulerr%3Fp0%3DngRoute%26p1%3D%255B%2524injector%253Anomod%255D%2520http%253A%252F%252Ferrors.angularjs.org%252F1.2.6%252F%2524injector%252Fnomod%253Fp0%253DngRoute%250As%252F%253C%2540http%253A%252F%252Flocalhost%252Ftest%252F2013%252Fjs%252Fangular%252F2.3%252Fjs%252Flib%252Fangular%252Fangular.min.js%253A6%250ATc%252Fb.module%253C%252F%253C%252Fb%255Be%255D%253C%2540http%253A%252F%252Flocalhost%252Ftest%252F2013%252Fjs%252Fangular%252F2.3%252Fjs%252Flib%252Fangular%252Fangular.min.js%253A20%250ATc%252Fb.module%253C%252F%253C%2540http%253A%252F%252Flocalhost%252Ftest%252F2013%252Fjs%252Fangular%252F2.3%252Fjs%252Flib%252Fangular%252Fangular.min.js%253A20%250Ae%252F%253C%2540http%253A%252F%252Flocalhost%252Ftest%252F2013%252Fjs%252Fangular%252F2.3%252Fjs%252Flib%252Fangular%252Fangular.min.js%253A29%250Aq%2540http%253A%252F%252Flocalhost%252Ftest%252F2013%252Fjs%252Fangular%252F2.3%252Fjs%252Flib%252Fangular%252Fangular.min.js%253A7%250Ae%2540http%253A%252F%252Flocalhost%252Ftest%252F2013%252Fjs%252Fangular%252F2.3%252Fjs%252Flib%252Fangular%252Fangular.min.js%253A29%250Ae%252F%253C%2540http%253A%252F%252Flocalhost%252Ftest%252F2013%252Fjs%252Fangular%252F2.3%252Fjs%252Flib%252Fangular%252Fangular.min.js%253A29%250Aq%2540http%253A%252F%252Flocalhost%252Ftest%252F2013%252Fjs%252Fangular%252F2.3%252Fjs%252Flib%252Fangular%252Fangular.min.js%253A7%250Ae%2540http%253A%252F%252Flocalhost%252Ftest%252F2013%252Fjs%252Fangular%252F2.3%252Fjs%252Flib%252Fangular%252Fangular.min.js%253A29%250AYb%2540http%253A%252F%252Flocalhost%252Ftest%252F2013%252Fjs%252Fangular%252F2.3%252Fjs%252Flib%252Fangular%252Fangular.min.js%253A32%250AXb%252Fc%2540http%253A%252F%252Flocalhost%252Ftest%252F2013%252Fjs%252Fangular%252F2.3%252Fjs%252Flib%252Fangular%252Fangular.min.js%253A17%250AXb%2540http%253A%252F%252Flocalhost%252Ftest%252F2013%252Fjs%252Fangular%252F2.3%252Fjs%252Flib%252Fangular%252Fangular.min.js%253A18%250ARc%2540http%253A%252F%252Flocalhost%252Ftest%252F2013%252Fjs%252Fangular%252F2.3%252Fjs%252Flib%252Fangular%252Fangular.min.js%253A17%250A%2540http%253A%252F%252Flocalhost%252Ftest%252F2013%252Fjs%252Fangular%252F2.3%252Fjs%252Flib%252Fangular%252Fangular.min.js%253A200%250Aa%2540http%253A%252F%252Flocalhost%252Ftest%252F2013%252Fjs%252Fangular%252F2.3%252Fjs%252Flib%252Fangular%252Fangular.min.js%253A129%250A%0As%2F%3C%40http%3A%2F%2Flocalhost%2Ftest%2F2013%2Fjs%2Fangular%2F2.3%2Fjs%2Flib%2Fangular%2Fangular.min.js%3A6%0Ae%2F%3C%40http%3A%2F%2Flocalhost%2Ftest%2F2013%2Fjs%2Fangular%2F2.3%2Fjs%2Flib%2Fangular%2Fangular.min.js%3A29%0Aq%40http%3A%2F%2Flocalhost%2Ftest%2F2013%2Fjs%2Fangular%2F2.3%2Fjs%2Flib%2Fangular%2Fangular.min.js%3A7%0Ae%40http%3A%2F%2Flocalhost%2Ftest%2F2013%2Fjs%2Fangular%2F2.3%2Fjs%2Flib%2Fangular%2Fangular.min.js%3A29%0Ae%2F%3C%40http%3A%2F%2Flocalhost%2Ftest%2F2013%2Fjs%2Fangular%2F2.3%2Fjs%2Flib%2Fangular%2Fangular.min.js%3A29%0Aq%40http%3A%2F%2Flocalhost%2Ftest%2F2013%2Fjs%2Fangular%2F2.3%2Fjs%2Flib%2Fangular%2Fangular.min.js%3A7%0Ae%40http%3A%2F%2Flocalhost%2Ftest%2F2013%2Fjs%2Fangular%2F2.3%2Fjs%2Flib%2Fangular%2Fangular.min.js%3A29%0AYb%40http%3A%2F%2Flocalhost%2Ftest%2F2013%2Fjs%2Fangular%2F2.3%2Fjs%2Flib%2Fangular%2Fangular.min.js%3A32%0AXb%2Fc%40http%3A%2F%2Flocalhost%2Ftest%2F2013%2Fjs%2Fangular%2F2.3%2Fjs%2Flib%2Fangular%2Fangular.min.js%3A17%0AXb%40http%3A%2F%2Flocalhost%2Ftest%2F2013%2Fjs%2Fangular%2F2.3%2Fjs%2Flib%2Fangular%2Fangular.min.js%3A18%0ARc%40http%3A%2F%2Flocalhost%2Ftest%2F2013%2Fjs%2Fangular%2F2.3%2Fjs%2Flib%2Fangular%2Fangular.min.js%3A17%0A%40http%3A%2F%2Flocalhost%2Ftest%2F2013%2Fjs%2Fangular%2F2.3%2Fjs%2Flib%2Fangular%2Fangular.min.js%3A200%0Aa%40http%3A%2F%2Flocalhost%2Ftest%2F2013%2Fjs%2Fangular%2F2.3%2Fjs%2Flib%2Fangular%2Fangular.min.js%3A129%0A

...c-1)+"="+encodeURIComponent("function"==typeof arguments[c]?arguments[c].toStrin...

I am on AngularJS v1.2.6.

What should I add or change so that angular app can work under require?

3 Answers 3

3

Require angular loader first, then require all other angular files and your file.

Then remove ng-app="yourApp" form your DOM. After all modules of requirejs are loaded, use angular.bootstrap to init your app.

Sign up to request clarification or add additional context in comments.

Comments

0

try to init angularjs app manually:

e.g. angular.bootstrap(obj.rootElement.find('html'), ['payment']);

1 Comment

thanks. any working example that you can suggest? I can't find any good ones online...
0

if you go to github and search for angular require seed or angular require bootstrap seed you'll find a number of examples

this one I've found the simplest to follow, it has just enough code to get me started. https://github.com/Matthew-Odette/angular-require-bootstrap-seed

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.