[英]Restangular is not calling the server
我想尋求幫助,因為我不知道這種情況下的問題。
我有一個簡單的MVC5應用程序,我想在其中使用角度和矩形。 當我加載頁面時,將執行角度控制器,但不會調用服務器。 這只是一種測試方法而已。 其余服務(Webapi2)返回一個簡單的json對象。
如果我使用瀏覽器或Fiddler2調用Web服務,那么得到的結果將是我期望的。 根據Fiddler的說法,結果是json。
當我重新加載頁面時,我什么也沒得到,只有諾言對象。 根據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();
}
}
});
Restangular.all('link').getList();
Restangular.one('link').get();
因此,應將方法.get()
放在方法.one()
以獲取單個結果,或將.getList()
置於結果之后
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.