【发布时间】:2015-12-10 09:27:19
【问题描述】:
我正在使用 angular js 和 require js 来制作单页模板。 一切正常接受一件事。当我尝试在 $routeProvider 中定义控制器名称时,它显示错误:
错误:[ng:areq] http://errors.angularjs.org/1.4.8/ng/areq?p0=SignIn&p1=not%20aNaNunction%2C%20got%20undefined
我这样分开文件:
rootfolder
js
-require.js
-angular.min.js
-angular-route.js
-main.js
-app.js
-signin.js
-signup.js
index.php
sign_in.php
sign_up.php
我的代码:
Main.js
require.config({
baseUrl: "./js",
paths: {
'angular': 'angular.min',
'angularRoute': 'angular-route'
},
shim: {
'angular' : { exports : 'angular' },
'angularRoute' : { deps : ['angular'] }
},
deps: ['app']
});
App.js
define(['angular','angularRoute'], function (angularRoute) {
var app = angular.module('webapp', ['ngRoute']);
app.config(['$routeProvider',
function($routeProvider) {
$routeProvider.
when('/signin', {
templateUrl: 'sign_in.php',
controller: 'SignIn'
}).
when('/signup', {
templateUrl: 'sign_up.php',
controller: 'SignUp'
}).
otherwise({
redirectTo: '/signin'
});
}
]);
return app;
});
控制器 - signin.js
define(['app'], function (app) {
app.controller('SignIn', function ($scope) {
$scope.message = "Sign in page";
});
});
控制器 - signup.js
define(['app'], function (app) {
app.controller('SignUp', function ($scope) {
$scope.message = "Sign up page";
});
});
当我在 $routeProvider 中定义 controller: 'SignIn' 或 controller: 'SignUp' 时,它会显示错误,否则它可以正常工作。
【问题讨论】:
-
您在哪里需要登录和注册?到目前为止,我看不到您将它们包含在哪里...
controller: 'SignIn'不会触发任何 requirejs 运行... -
在 app.js 中定义控制器时。