如何使用 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" 并且这确实解决了问题。
我不确定是否有更好的方法,但欢迎提出建议。
希望这能解决其他人的问题。
此致,
杰
您好,我正在开发 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" 并且这确实解决了问题。
我不确定是否有更好的方法,但欢迎提出建议。
希望这能解决其他人的问题。
此致, 杰