gpt4 book ai didi

javascript - Restangular 没有调用服务器

转载 作者:行者123 更新时间:2023-12-03 11:50:53 26 4
gpt4 key购买 nike

我想寻求帮助,因为我不知道这种情况下的问题是什么。

我有一个简单的 MVC5 应用程序,我想在其中使用 Angular 和矩形。当我加载页面时, Angular Controller 将被执行,但不会调用服务器。这只是一个测试方法,没有别的。其余服务(Webapi2)返回一个简单的 json 对象。

如果我使用浏览器或 Fiddler2 调用 Web 服务,那么我会得到我期望的结果。根据 Fiddler 的结果是 json。

当我重新加载页面时,我什么也没得到,我认为只有 Promise 对象。根据 Fiddler 的说法,当时没有服务器调用。如果我转储 testResult 对象(请参阅下面的 TestService.js 文件),它不包含任何内容,并且我看到有一个属性 fromServer 并且值为 false。我认为它表明服务器通信是否发生。

我浏览了 restangular 文档,但没有找到任何可以帮助我解决这个问题的内容。这并不意味着文档是错误的。 :)不知道是什么问题。

预期的 json:

{"Id":1,"Name":"Egyeske"}

单个 html 文件 (_layout.cshtml)

<!DOCTYPE html>
<html lang="en" ng-app="dilibApp">
<head>
<meta name="viewport" content="width=device-width" />
<title>@ViewBag.Title</title>
</head>
<body>
<div ng-controller="TestController">
Test value: {{testValue}}
</div>
<div>
@RenderBody()
</div>
<div>
<script type="text/javascript" src="~/Scripts/angular.js"></script>
<script type="text/javascript" src="~/Scripts/angular-route.js"></script>
<script type="text/javascript" src="~/Scripts/angular-resource.js"></script>
<script type="text/javascript" src="~/Scripts/restangular.js"></script>
<script type="text/javascript" src="~/Scripts/lodash.js"></script>
@* dilibApp module *@
<script type="text/javascript" src="~/Scripts/AngularModules/dilibApp/dilibApp.js"></script>
<script type="text/javascript" src="~/Scripts/AngularModules/dilibApp/Controllers/TestController.js"></script>
<script type="text/javascript" src="~/Scripts/AngularModules/dilibApp/Services/TestService.js"></script>
</div>
</body>
</html>

dilibApp.js 文件:

'use strict';

var dilibApp = angular.module('dilibApp', ['restangular', 'ngRoute', 'ngResource']).
config(function (RestangularProvider)
{
RestangularProvider.setBaseUrl('http://dev.dilib.local/service/webapi/');
});

TestController.js 文件:

'use strict';

dilibApp.controller('TestController', function ($scope, testService)
{
$scope.testValue = testService.get();
});

TestService.js 文件:

'use strict';

dilibApp.factory('testService', function(Restangular) {

var testResult = Restangular.all('http://dev.dilib.local/service/webapi/test');

//console.log(Restangular);
//console.log(testResult);
return {
get: function() {
//console.log(testResult.one());
return testResult.one();
}
}
});

最佳答案

Document

Restangle.all('link').getList();Restangular.one('link').get();

因此,您应该将方法 .get() 放在方法 .one() 后面以获取单个结果或 .getList() 来获取结果列表

关于javascript - Restangular 没有调用服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25841828/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com