Breeze Angular 服务未将 Breeze 配置为 Angular Promises

Breeze Angular Service Not Configuring Breeze to Angular Promises

我无法获取 Breeze Angular 服务 (http://www.getbreezenow.com/documentation/breeze-angular) 来配置 Breeze 使用 Angular promises,即,我永远无法获取 [=46= 中的 useNgPromises() 函数] 将消息记录到控制台,因此我假设 Breeze 从未配置为使用 Angular promises.

我的JS文件加载如下:

  1. angular.js(1.3.14 版)
  2. angular-route.js (v.1.3.14)
  3. q.js (v 1.1.2) - 这是因为如果我忽略它,我会不断收到 Q 未定义的错误。不知道如果改用Angular promises是否需要加载Q.js
  4. breeze.js(1.5.3 版)
  5. breeze.bridge.angular.js (v 1.1.0)
  6. app.js 和其他特定于应用程序的 JS 文件

到目前为止,这满足了该 Breeze 页面 "Install It" 部分的第 1 步和第 2 步。

根据 Breeze 页面上的第 3 步和第 4 步以及 breeze.bridge.angular.js 中的评论,这就是我的 app.js 的样子:

    window.myApp = angular.module("myApp", [
        "breeze.angular"
    ])
    .value("breeze", window.breeze)
    .config(["$routeProvider", function ($routeProvider) {
        // Routing code
    }])
    .run(['breeze', function (breeze) {}]);

据我所知,该代码与该 Breeze 页面上的示例 #1 代码匹配,并满足该 Breeze 页面上的步骤 #3 和 #4。

然后我有一些使用控制器和数据上下文 JS 文件的基本视图,后者将 breeze 对象作为依赖项注入。为了测试 Breeze 是否实际执行与 Angular promises 一起使用的配置,我编辑了 breeze.bridge.angular.js 文件,以便将以下语句作为第一行包含在 useNgPromises() 函数中:

    console.log("Using Angular promises!");

当我 运行 我的应用程序时,我从未在控制台中看到它,所以我假设配置没有发生。

我是不是设置有误?如果是,是什么?

我通过注释掉以下行解决了这个问题:

    .value("breeze", window.breeze)

我在此处的 "Dependency Injection" 部分包含了该行:http://www.getbreezenow.com/ng-spa-template#module as well as the "Value Recipe" section here: https://docs.angularjs.org/guide/providers,但显然它不能很好地与 Breeze Angular 服务配合使用。

我不确定为什么会这样,但我最好的猜测是问题是由 Angular 值不可配置引起的,根据这个解释:https://gist.github.com/demisx/9605099,我假设Breeze Angular 服务要求 Breeze 对象是可配置的,因此不应通过值配方将其作为应用程序的依赖项注入。

我还应该注意到,删除那行麻烦的代码后,我不再收到指示需要 Q.js 的错误,因为 Breeze Angular 服务已成功配置 Breeze 使用 Angular 的 $q 代替。

你绝对不需要Q.js;如果您看到与该库相关的错误,则表明存在配置错误。

我认为您在添加 .value("breeze", window.breeze) 时发现了问题。

那一行抹掉了'breeze.angular'模块建立的breeze服务的定义(在breeze.bridge.angular.js中定义),因此阻止 $http$q 的 breeze 配置。如果没有该配置,breeze 会在其他地方寻找 promises 实现……因此会抱怨缺少 Q.js。所以......是的......那条线是一场灾难。

想知道 你是从哪里得到这条线的想法的。感谢您参考 Microsoft ASP Breeze/Angular 模板文档。哇,太旧了(2013 年)。我会杀了它……还有其他已失效的 Visual Studio Breeze 模板……如果可以的话(也许我可以)。我以为我们让他们很难找到。看起来你找到了他们。怎么样?

这肯定不是我们现在教 Breeze + Angular 的方式。

"Todo Angular" sample 是一个更好的指南(即使它已有一岁)。