如何使用 location.path 和 angularjs 而不是 $http.get

How to use location.path with angularjs rather than $http.get

您好,我正在开发 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 而不是硬编码 URL.

我的控制器如下:

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;
    };
});

希望能帮到你。

我确实使用

解决了这个问题
window.location.pathname+"\?format=raw"

基本上在 joomla 中,我为同一个组件创建了多个菜单项。

例如显示伦敦的所有酒店。我从组件和 select london 创建了一个菜单项。该组件生成一条 json 消息,但为了将其与 angularjs 一起使用,我必须为 json 提供 url,以便 angular 控制器可以获得 json.

所以在这种情况下 url 必须是 http://test.com/london?format=raw

但是要有多个菜单项,我将不得不为每个城市创建多个 angular 控制器,这超过了组件的点并且只有一个控制器。

所以我在 angularjs 的 http.get 中使用了 window.location.pathname+"\?format=raw" 并且这确实解决了问题。

我不确定是否有更好的方法,但欢迎提出建议。

希望这能解决其他人的问题。

此致, 杰