我是使用RESTful服务和AngularJS开发的新手。经过大约10个小时的搜索解决方案,包括谷歌搜索结果和大量的线程,我决定发布另一个问题。
首先:我的环境包含几个组件。第一个是我的笔记本电脑。我正在使用AngularJS插件运行Eclipse,并使用eclipse及其集成的浏览器/视图和本地开发本地前端。编辑器。
第二个组件是我的台式电脑。这是我提供其余api /接口进行交互的地方。 (我的应用程序的后端部分用jersey和java ee,用eclipse在本地tomcat7上运行)。 最后一点是一个tomcat服务器,在我的esxi上的虚拟环境中运行。这应该是两个项目以后聚集在一起的点。
我的问题如下。我想从泽西后端检索数据。详细信息:我从数据库中检索菜单条目并在应用程序的导航栏中显示它们:MenuBar working
这太棒了!开心辞典!它在我的eclipse浏览器中本地工作(当我用safari浏览器在本地打开路径时)。
当我将index.html和app.js发布到我的服务器(apache和tomcat实例。两者都没有显示菜单!)时,它不起作用。
从后端返回的JSON:
[
{
"id": 1,
"name": "Administration",
"entries": [
{
"name": "UserList",
"url": "userlist"
},
{
"name": "Ticket",
"url": "ticketlist"
},
{
"name": "MenuList",
"url": "menulist"
}
]
},
{
"id": 2,
"name": "CMDB",
"entries": [
{
"name": "Configuration Items",
"url": "cilist"
}
]
}]
我已使用http://jsonlint.com验证结果,并且它有效!
这是我的angularJS控制器:
app.controller('AController', function ($scope, navBarFcty){
$scope.menulist = navBarFcty.query();
});
app.factory('navBarFcty', function($resource){
return $resource('http://myserverIP/webportal/rest/menu/get', {},
{
query: {method: 'GET', isArray: true} }
);
});
//OLD Controller
app.controller('AControllerOld', function($scope, $http){
$http.get('http://myserverIP/webportal/rest/menu/get').
success(function(data){
$scope.menulist = data;
});
});
但两者都在我的eclipse浏览器本地工作。正如你所看到的,我已经尝试了几个方法来调试我的问题。即使我在tomcat服务器上使用了crossdomain.xml,但仍然没有成功。
在我完成我的问题之前,这里是显示前端条目的来源:
<li class="dropdown" ng-repeat="category in menulist">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">{{category.name}}
</a></li>