使用推荐的组件加载方法(See step 3)
时出现此错误 Error: Module name "angular-ui-router" has not been loaded yet for context: _. Use require([])
app模块定义:
<script>
var adminApp = angular.module('adminClientApp', [require('angular-ui-router'), 'ngMaterial', 'ngResource', 'ngMessages', 'ngMdIcons']);
</script>
根据doco,不需要包含脚本标记 - 它将通过requirejs加载
Requirejs main.js定义:
require.config({
paths:{
'angular-ui-router': 'vendor/angular-ui-router/release/'
},
shim:{
'angular': {
exports: 'angular'
}
}
});
应用布局:
-- root
index.html
main.js
-- js
-- app (angular files here)
app.js
-- vendor (3rd party libs)
index.html中的requirejs main.js设置
<script data-main="main.js" src="vendor/requirejs/require.js"></script>
答案 0 :(得分:1)
您使用的指南不适用于RequireJS。在那里应用说明之后,你正在做这样的事情:
Prob(Q,isin(Q,c("Ash Gray", rep(c("Ghost White", "Ash Gray"),1))))
这通常无法使用RequireJS,因为使用单个字符串调用> Prob(Q,isin(Q,c("Ash Gray", rep(c("Ghost White", "Ash Gray"),2)))
会失败,除非模块已经加载。只有在<script>
var myApp = angular.module('myApp', [require('angular-ui-router')]);
</script>
内,才能保证此调用有效,如下所示:
require
此代码是一个模块,应该位于单独的define
文件中并加载define(function (require) {
var myApp = angular.module('myApp', [require('angular-ui-router')]);
});
。 (注意,参数是一个字符串数组。这是.js
的另一种形式,而不是采用单个字符串参数的形式。)
您应该使用Component,这是您正在使用的指南的作者在撰写指南时所使用的,或者是与其相当的工具。否则,您需要将代码转换为使用RequireJS。