首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >RequireJS和Breeze玩得不好

RequireJS和Breeze玩得不好
EN

Stack Overflow用户
提问于 2015-07-21 14:20:20
回答 1查看 70关注 0票数 0

问题:

RequireJS似乎没有和Breeze玩得很好。

我有一个错误如下:

代码语言:javascript
复制
Unable to initialize OData.  Needed to support remote OData services

这通常意味着datajs没有加载,需要在之前添加到页面中。但是,我已经在RequireJS中这样做了--或者至少我认为我做到了,但是我的配置中可能有错误或遗漏。

My Config:

main.js包含以下内容:

代码语言:javascript
复制
var paths = {
    'text': '../text',
    'durandal': '../durandal',
    'plugins': '../durandal/plugins',
    'transitions': '../durandal/transitions',
    'breeze': '../breeze.debug',
    'datajs': '../datajs-1.1.3',
    'q': '../q',
};

var shim = {
    'datajs': ['jquery'],
    'breeze': ['jquery', 'datajs', 'q']
};

requirejs.config({
    paths: paths,
    shim: shim
});

测试模块(非常简单的测试页面),如下所示:

JS:

代码语言:javascript
复制
define(['jquery', 'knockout', 'datajs', 'q', 'breeze'], function ($, ko, datajs, q, breeze) {
    return {
        people: ko.observableArray([]),

        attached: function () {
            breeze.config.initializeAdapterInstances({ dataService: "OData" });
            var manager = new breeze.EntityManager('/odata');

            var query = new breeze.EntityQuery()
                .from("People")
                .orderBy("Name asc");

            manager.executeQuery(query).then(function (data) {
                this.people([]);

                $(data.httpResponse.data.results).each(function () {
                    var current = this;
                    this.people.push({ Id: current.Id, Name: current.Name });
                });
            }).fail(function (e) {
                alert(e);
            });
        }
    };
});

HTML:

代码语言:javascript
复制
<section>
    <table class="table table-striped">
        <thead>
            <tr>
                <th>ID</th>
                <th>Name</th>
            </tr>
        </thead>
        <tbody data-bind="foreach: people">
            <tr>
                <td data-bind="text: Id"></td>
                <td data-bind="text: Name"></td>
            </tr>
        </tbody>
    </table>
</section>

如您所见,我已经将datajsq指定为的依赖项。我在这里错过了什么?

编辑

我通过FireBug检查了HTML,如您所见,qdatajs似乎都是在之前加载的。所以我在这里完全糊涂了。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-07-22 01:49:52

我在这里发现了答案:DataJS library not loading in RequireJS

显然,我们需要为同一个js文件引用两个单独的对象.如下所示:

代码语言:javascript
复制
'paths': {
    'datajs': '../datajs-1.1.3',
    'OData': '../datajs-1.1.3',
},
'shim': {
    'OData':['datajs']
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31541730

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档