簡體   English   中英

Restangular沒有調用服務器

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM