【发布时间】:2015-08-05 19:04:43
【问题描述】:
我正在尝试让 AngularJS 与 RequireJS 一起工作,但它找不到我的自定义模块。如果我内联注入所有脚本而不做任何更改,它就可以工作,所以我知道这是 RequireJS 和依赖项的问题。
溜槽来源:http://chute.github.io/angular-chute/
RequireJS 配置垫片:
shim: {
'angular': {
exports: 'angular'
},
'angular.resource': {
deps: ['angular'],
},
'chute': {
deps: ['angular.resource'],
},
'chute.resource': {
deps: ['chute']
},
'chute.asset': {
deps: ['chute']
},
'chute.heart': {
deps: ['chute']
}
}
HTML:
<div class="wall" ng-app="socialImages" ng-controller="MainCtrl">
<div class="wall-item" ng-repeat="asset in assets">
<img ng-src="{{asset.url}}/w/300" width="300">
<div class="like icon-star" ng-class="{'active': asset.hearted()}" ng-click="asset.toggleHeart()"></div>
<p>{{asset.caption}}</p>
<ng-pluralize class="likes" count="asset.hearts" when="{'one':'1 like', 'other':'{} likes'}"></ng-pluralize>
</div>
<a class="load-more button" ng-show="assets.hasMore()" ng-click="assets.nextPage()">Load more</a>
</div>
JS:
define(['angular', 'angular.resource', 'chute', 'chute.resource', 'chute.asset', 'chute.heart'], function(angular){
'use strict';
var socialImages = angular.module('socialImages', ['chute']);
socialImages.controller('MainCtrl', ['$scope', 'Chute.API.Asset', function($scope, Asset) {
$scope.assets = Asset.query({album: 'azpQsjmn', perPage: 3});
}]);
});
当我加载页面时,在编辑 angularJS 以获得更多描述性错误消息后出现以下控制台错误。
[$injector:nomod] 模块“ngLocale”不可用!你要么 模块名称拼写错误或忘记加载它。如果注册一个 模块确保您将依赖项指定为第二个 论据。
angular.js:63 [$injector:nomod] 模块 'socialImages' 不是 可用的!您要么拼错了模块名称,要么忘记加载它。 如果注册模块,请确保将依赖项指定为 第二个参数。
angular.js:63 [$injector:modulerr] 无法实例化模块 由于:
错误:[$injector:nomod] 模块“socialImages”不可用!你 要么拼错了模块名称,要么忘记加载它。如果注册 一个模块确保您将依赖项指定为第二个 论据。
我已经尝试过 domReady 模块和多个 RequireJS 依赖变体。
【问题讨论】:
标签: javascript angularjs requirejs