【发布时间】:2015-09-09 11:52:12
【问题描述】:
我想请求一些帮助。
我有一个可以使用domain/service/webapi/ url 调用的服务。当domain/service/webapi/menu/getmenucategory 时,它会返回下面的 JSON 字符串,代表应用程序的菜单结构:
我的问题是,如果我使用 restangular 调用这个 url,那么我会得到并清空对象。然而,Fiddler 说 Restangular 调用 webapi 服务并返回下面的 json。我不明白为什么 restangular 不返回我期望的 javascript 对象。
我浏览了文档,但没有找到任何东西。我认为我做错了一些非常简单的事情。
以下是脚本:
控制器:
'use strict';
dilibApp.controller('NavigationMenuController', function ($scope, navigationMenuService) {
$scope.menuCategories = navigationMenuService.GetMenuCategories();
});
服务:
'use strict';
dilibApp.factory('navigationMenuService', function(Restangular) {
return {
GetMenuCategories: function() {
//var menuCategories = Restangular.all('menu', 'getmenucategory');
var menuCategories = Restangular.all('menu/getmenucategory');
console.log(JSON.stringify(menuCategories.getList()));
return menuCategories.getList();
}
}
});
Chrome 控制台中的结果:
{"restangularCollection":true,"$object":[]}
JSON 字符串:
[{"$id":"1",
"Id":1,
"Name":"File",
"SortNo":0,
"IsEnabled":1,
"MenuItems":[{"$id":"2",
"Id":1,
"Name":"File menu item 1",
"IsEnabled":1},
{"$id":"3",
"Id":2,
"Name":"File menu item 2",
"IsEnabled":1}]},
{"$id":"4",
"Id":2,
"Name":"Administration",
"SortNo":1,
"IsEnabled":1,
"MenuItems":[{"$id":"5",
"Id":4,
"Name":"Administration menu item 1",
"IsEnabled":1},
{"$id":"6",
"Id":5,
"Name":"Administration menu item 2",
"IsEnabled":1}]},
{"$id":"7",
"Id":3,
"Name":"Modules",
"SortNo":2,
"IsEnabled":1,
"MenuItems":[{"$id":"8",
"Id":6,
"Name":"Modules menu item 1",
"IsEnabled":1},
{"$id":"9",
"Id":7,
"Name":"Modules menu item 2",
"IsEnabled":1}]}]
【问题讨论】:
-
好的,我想做一些反对 - 在我看来 - Restangular 概念。我将我的 Restangular 调用移到了控制器中,现在它工作正常,但是,我不喜欢服务器调用和控制器在同一方法中运行。
标签: javascript json rest asp.net-web-api restangular