我决定尝试学习RequireJS,所以我试图在一个项目中实现它,我也决定使用Angular和Angular-Route进行路由。
我设法在我的app.js中设置了一个模块,但是在添加了我的第一条路线并为该路线设置了控制器后,应用程序'没有在控制器中定义。
似乎我不知何故需要设置应用程序'作为homeCtrl'的依赖。或者我需要制作应用程序'模块以某种方式可用。我只是不确定如何做到这一点。
以下是目前设置的内容:
index.html ...(* head blah blah)...
<body ng-app="MyApp">
<div ng-view>
</div>
<script data-main="./app/config" src="./app/require.js"></script>
<script>
require(['config'], function() {
require(['app/app']);
});
</script>
</body>
</html>
应用程序/ config.js ...
requirejs.config({
baseUrl: './',
paths: {
jquery: 'lib/bower_components/jquery/dist/jquery.min',
bootstrap: 'lib/bower_components/bootstrap/dist/js/bootstrap.min',
angular: 'lib/bower_components/angular/angular.min',
angular_route: 'lib/bower_components/angular-route/angular-route.min',
home: 'app/controllers/homeCtrl'
}
});
应用程序/ app.js ...
"use strict";
define(['jquery', 'angular', 'angular_route', 'home'], function ($, angular, angular_route, home) {
let app = angular.module('MyApp', ['ngRoute']);
app.config(['$routeProvider', function ($routeProvider) {
$routeProvider.
when('/home', {
templateUrl: 'partials/home.html',
controller: 'homeCtrl'
}).
otherwise({
redirectTo: '/home'
});
}]);
// End RequireJS 'define'
});
应用程序/控制器/ homeCtrl.js ...
"use strict";
define(['jquery', 'angular'], function ($, angular) {
app.controller('homeCtrl', [
'$scope',
function ($scope) {
$('body').html(`<div>Hey it worked!</div>`);
}
]);
// End 'define'
});
控制台错误的屏幕截图:
显示已加载文件的控制台网络部分:
同样,我是使用RequireJS的新手,所以我确定我在某个地方犯了一个简单的错误。
感谢您提供任何帮助/解决方案!
答案 0 :(得分:0)
您需要以下垫片,因为Angular不会调用String.raw
:
define