我正在研究AngularJS,我想从URL中加载MySQL中的内容。
我使用的AngularJS RouteProvider是:
$routeProvider.when('/page/pages=:pages', {
templateUrl: 'page.html',
reloadOnSearch: false
});
我的动态网址是:
"<a class='list-group-item' href='#/page/pages=" + slug + "'>" +
title + " <i class='fa fa-chevron-right pull-right'></i>" +
"</a>"
之后,我尝试提醒PhoneGap上的URL位置(附带截图)
现在,我想将此页面值传递给AJAX,以便从MySQL获得结果查询。
$(function ()
{
//-----------------------------------------------------------------------
// 2) Send a http request with AJAX http://api.jquery.com/jQuery.ajax/
//-----------------------------------------------------------------------
jQuery.ajax({
url: 'http://keralapsctuts.com/app/index.php', //the script to call to get data
data: "pages="+pages, //you can insert url argumnets here to pass to api.php for example "id=5&parent=6"
type: "POST",
dataType: 'json', //data format
success:function(data) {
var result = "";
var title = "";
alert(pages);
for(var i=0; i < data.length; i++) {
var title = data[i]["pagetitle"]; //get name
var content = data[i]["pagecontent"]; //get slug
result += +content;
title += "<span>"+title+"</span>";
}
$('#pcontent').html(content); //Set output element html
$('#ptitle').html(title); //Set output element html
}
});
});
我没有得到任何输出。
答案 0 :(得分:1)
要获取网址中的查询参数,请使用AngularJS $location提供程序。 如果您的网址看起来像example.com/#/page?pages=5,则可以通过编写
来获取值5 var urlPageValue = $location.search()["pages"];
请务必通过编写
在控制器中包含$ location和$ http服务yourModuleName.controller("AwesomeController", ["$location", "$http", function($location, $http){
// Page initialization code (like your ajax call) here
}])
然后,正如Szanto建议的那样,使用$ http服务来写你的ajax调用
$http({
url:"/yourApiEndpoint",
method: "POST",
data: { pages: urlPageValue }
}).success(function(response){
// Handle returned data here
}).error(function(){
// Handle errors here
})
最后,在您的原始问题中,当您从SQL调用中获取数据时,您手动将跨度添加到DOM。如果要使用AngularJS,则应将响应分配给数组变量,并使用HTML中的ngRepeat指令为数组中的每个项目实例化一些模板。
答案 1 :(得分:0)
你正在使用Angular和jQuery吗?这是一个坏主意,使用Angular的内置http method来替换jQuery ajax请求。其次,您可以将参数传递给请求配置(即使在jQuery中)。