0

我正在尝试将 Angular 与微风和 requireJS 一起使用,但我收到了未捕获错误的错误:尚未为上下文加载模块名称“ko”:_。使用要求([])

我已经配置

define("breezeConfig", ["breeze"], function(breeze) {
// configure to use the model library for Angular
//breeze.config.initializeAdapterInstance({ dataService: "OData" });
breeze.config.initializeAdapterInstance("modelLibrary", "backingStore", true);

// configure to use camelCase
breeze.NamingConvention.camelCase.setAsDefault();

var serverAddress = "/odata/";
var manager = new breeze.EntityManager(serverAddress);
return breeze;

});

并在主模块中

require.config({
baseUrl: "/app",
paths: {
    "jQuery": "lib/jquery-1.8.2",
    "angular": "lib/angular",
    "angular-resource": "lib/angular-resource",
    "text": "lib/text",
    "Q": "lib/q",
    "breeze": "lib/breeze.min"
 and so on

在最后

require([
'jQuery',
'Q',
'breeze',
'angular',
'app',
'controllers',
'routes',
'breezeConfig'

],函数($,角度,应用程序){

angular.element(document).ready(function () {
    angular.bootstrap(document, ['AMail']);
});

我哪里错了?

4

1 回答 1

2

是的……我们知道。之前已经在 SO 上报道过。我们正在修复(下一个版本)。

同时,在你的主模块中做两件事:

1) 定义一个伪造的淘汰模块

定义('ko​​',函数(){});// 没做什么

2) 在你的 require.config 函数中添加一个 shim:

...
垫片:{
       jquery:{出口:'$'},
       角度:{出口:'角度'},
       微风:{ deps:['ko','jquery','Q']}
      }
...

即使我们解决了 ko 问题,您仍需要 shim(减去 'ko' 依赖项! )。Breeze 依赖于必须首先加载的“jquery”和“Q”。您可能需要也可能不需要其他垫片线。

于 2013-05-20T23:45:33.520 回答