【问题标题】:ui routing in angular returning Unexpected request: GETui路由在角度返回意外请求:GET
【发布时间】:2016-04-08 03:43:45
【问题描述】:

以下是我的 Angular 项目的 ui 路由设置。我无法调出工单列表页面。我不确定以下设置有什么问题,请您告诉我如何调出工单列表页面来查看我的工单。

在浏览器上调用的 URL http://localhost:63342/vdash/index.html#/workorders

app.js

(function () {
"use strict";
var app = angular.module("workOrderManagement", ["common.services",      "ui.router", "workOrderResourceMock"]);
app.config(["$stateProvider", "$urlRouterProvider", function ($stateProvider, $urlRouterProvider) {
        $urlRouterProvider.otherwise("/workorders");

        $stateProvider.state("workOrderList", {
            url: "/workorders",
            templateUrl: "app/workorder/workOrderListView.html",
            controller: "workOrderCtrl as vm"
        })
    }]
)
})();

workOrderResourceMock.js

(function () {
"use strict";

var app = angular.module("workOrderResourceMock", ["ngMockE2E"]);
app.run(function ($httpBackend) {
    var workOrders = [
        {
            "orderNo": "WO-0000001",
            "city": "San Jose",
            "bank": "Citi Bank",
            "branch": "Maxrk",
            "creationDate": "2017-10-01",
            "clientName": "Mr.Peter",
            "status": "PENDING",
            "handledBy": "Peter",
        }           
    ];

    var workOrderUrl = "/workorders";

    $httpBackend.whenGET(workOrderUrl).respond(function(method, url, data){
      // just to see if it his this function will remove later
        alert("into the backend method");
        console.log(url);


        return [200, workOrders];
    });

$httpBackend.whenGET("/").passThrough();
   });
}());

错误 angular.js:13236 错误:意外请求:GET
app/workorder/workOrderListView.html 预计不再有请求 在 $httpBackend (angular-mocks.js:1403)

【问题讨论】:

  • 在这个link 中,它说使用expectGET()。为什么不试试这个解决方案,看看它是否有效?

标签: angularjs angular-ui-router ngmocke2e


【解决方案1】:

Angular 正在尝试获取需要显示视图的模板。我假设这是 E2E 测试。在运行测试时,所有调用都会通过 $httpBackend,因此您需要让 $httpBackend 允许调用来获取模板。

将此添加到运行方法的末尾,

$httpBackend.whenGET("/app/workorder/workOrderListView.html").passThrough();

作为替代解决方案,您可以使用$templateCache 来缓存您的模板,因此 Angular 不必从服务器加载它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-05-26
    • 2018-08-05
    • 2018-04-05
    • 2021-01-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多