您好我正在开发一个angularjs应用程序。这实际上嵌入了joomla。
满足json响应的URL会根据单击的菜单项不断更改。例如:
http://localhost/testsite/index.php/good?format=raw
http://localhost/testsite/index.php/bad?format=raw
http://localhost/testsite/index.php/ugly?format=raw
有没有办法可以使用location.path而不是硬编码网址。
我的控制器如下:
var app = angular.module('myApp', ['ui.bootstrap']);
app.filter('startFrom', function() {
return function(input, start) {
if(input) {
start = +start; //parse to int
return input.slice(start);
}
return [];
}
});
app.controller('customersCrtl', function ($scope, $http, $timeout) {
$http.get('http://localhost/testsite/index.php/good?format=raw').success(function(data){
$scope.list = data[0]; //before the code was $scope.list = data; The second response with [[that doesn't work is an array with an array inside of it.
$scope.currentPage = 1; //current page
$scope.entryLimit = 10; //max no of items to display in a page
$scope.filteredItems = $scope.list.length; //Initially for no filter
$scope.totalItems = $scope.list.length;
});
$scope.setPage = function(pageNo) {
$scope.currentPage = pageNo;
};
$scope.filter = function() {
$timeout(function() {
$scope.filteredItems = $scope.filtered.length;
}, 10);
};
$scope.sort_by = function(predicate) {
$scope.predicate = predicate;
$scope.reverse = !$scope.reverse;
};
});
希望你能提供帮助。
答案 0 :(得分:0)
我确实使用
解决了这个问题window.location.pathname+"\?format=raw"
基本上在joomla中,我为同一个组件创建了多个菜单项。
例如显示伦敦的所有酒店。我从组件创建一个菜单项,然后选择伦敦。这个组件生成一个json消息但是为了在angularjs中使用它,我必须为json提供url,这样角度控制器就可以得到json。
因此,在这种情况下,网址必须为http://test.com/london?format=raw。
但要拥有多个菜单项,我必须为每个城市创建多个角度控制器,这些控制器胜过组件点,只有一个控制器。
所以我使用了window.location.pathname +" \?format = raw"在angularjs的http.get中,这确实解决了这个问题。
我不确定是否有更好的方法可以做到,但我愿意接受建议。
希望这能为其他人解决问题。
此致 洁