Javascript Angular.js HTTP使用$routeParams获取
我在尝试使用Angular.js+PHP从数组中获取信息时遇到问题 其思想是:当用户转到Javascript Angular.js HTTP使用$routeParams获取,javascript,php,angularjs,Javascript,Php,Angularjs,我在尝试使用Angular.js+PHP从数组中获取信息时遇到问题 其思想是:当用户转到/post/76(例如),脚本将获得ID并返回所有相关信息(标题、内容、视图等) $routeProvider carolvaladares.config(function($routeProvider) { $routeProvider. when('/post/:postId', { templateUrl : 'views/post.html',
/post/76
(例如),脚本将获得ID并返回所有相关信息(标题、内容、视图等)
$routeProvider
carolvaladares.config(function($routeProvider) {
$routeProvider.
when('/post/:postId', {
templateUrl : 'views/post.html',
controller : 'postCtrl'
})
});
控制器
carolvaladares.controller('postCtrl', function($scope, $http, $routeParams) {
var postId = $routeParams.postId;
$http.get("php/get-posts.php?id=" + postId).then(function (response) {
$scope.post = response.data;
});
});
PHP
提前谢谢
(已编辑)
排列
[
{
“id”:“76”,
“提特罗”:“美国胡萝卜蛋糕”,
“sub:”第二条职能指令手册,一份关于cenoura bolo de cenoura酒店的报告!“,
“corpo”:"在24小时内,你可以在一个没有雾气的地方享受一个传统的美国胡萝卜蛋糕。\r\n\r\nBora cozinhar!\r\nMassa–Ingredites:
<2 xí;cara de farinha de trigo
<1 xí;cara de aç;&汽车;汽车;汽车
2xí;cara de ovo
2xí;caras de cenoura ralada
1\/2xí;cara de maç;ã;ralada
<3 de xí;cara deó;leo
<3 colheres de sopa deá;gua\r\n 500克菲拉德尔菲亚
1辆法国汽车o(9个polegadas)用喷雾器喷一喷,喷一喷,喷一喷,喷一喷,喷一喷,喷一喷,喷一喷,喷一喷,喷一喷,喷一喷,喷一喷,喷一喷,喷一喷,喷一喷,喷一喷,喷一喷,喷一喷一喷,喷一喷一喷,喷一喷一喷,喷一喷一喷一喷,喷一喷一喷一喷一喷一喷,喷一喷一喷一喷一喷一喷,喷一喷一喷一喷,喷一喷一喷一喷,喷一喷一喷一喷一喷,喷一喷一喷一喷一喷,喷一喷一喷一喷一喷,喷一喷一喷一喷一喷一喷一喷,喷一喷一喷一喷一喷一喷一喷一喷一喷一喷一喷一喷一喷一,我的朋友们,我的朋友们,我的朋友们,我的朋友们,我的朋友们,我的朋友们,我的朋友们,我的朋友们,我的朋友们,我的朋友们,我的朋友们,我的朋友们,我的朋友们,我的朋友们,我的朋友们,我的朋友们,我的朋友们,我的朋友们或者说是一种完整的乳酪。\r\nPara fazer a cobertura,com a Bate deira em Velocided mé;dia alta,bata os Ingredites da cobertura até;ficar homogê;neo.Recheie o bolo e cubra com o creme de creme de cream de cream de creme de cream cheese.\r\n&我可以想象你的愤怒,因为你用它来作为我的灵魂。\r\nDeixe esfrier e deposedestrua combolo deuso,
“colunista”:“denise”,
“鼻涕虫”:“美式佳肴\胡萝卜蛋糕”,
“缩略图”:“staff\/uploads\/2015\/denise-Materiala\u gastronomia3\u Carrot Cake\u cv.jpg”,
“标签”:“胡萝卜蛋糕、蛋糕、胡萝卜、赛诺拉、波洛、雷西塔、美式卡诺、埃斯塔多斯尤尼多斯、欧盟、美国、赛诺拉波洛”,
“来源”:“,
“数据”:“2015-12-22”,
“hora”:“13:00:00”,
“意见”:“56”,
“分类”:“美食”,
“aprovado”:“1”
}
]
(已编辑)
解决方案是
{post[0].x}
,对于HTML内容ng bind HTML
以及依赖项ngSanitize
,能否显示打印出的数组的外观?这将有助于调试
无论如何……我的第一个猜测是,当像这样访问数组时,您缺少了1级数组
post[0].title
因为:mysql\u fetch\u assoc
返回一个数组,然后将该数组放入一个数组中,并使用json\u encode对其进行编码
我的第二个猜测是,您必须首先解析响应,就像它的JSON:do一样
$scope.post = JSON.parse(response.data);
如果请求一行不需要新的外部php数组,只需返回该行,该行将成为javascript对象……否则请尝试{post[0].title}
@charlietfl,该行用于标题,但是{{post[0].body}}是一个HTML,它现在以纯文本形式打印……需要使用ng bind HTML
..{}
仅用于文本。请阅读有关ng bind html的文档,了解如何使用$SCE
@charlietfl谢谢!使用ng bind html和依赖项ngSanitize它起作用了!$http
将内部解析json。parse()返回了一个错误。但是post[0]。标题工作正常。谢谢!
[
{
"id":"76",
"titulo":"Carrot Cake Americano",
"sub":"Para esse Fim de Ano, aproveite essa receita maravilhosa de bolo de cenoura!",
"corpo":"<p>Receitinha mara pra quem vai passar o dia 24 com a barriguinha no fogão tipo eu. <strong>o\/<\/strong> Nada mais, nada menos que ele, o tradicional <strong>Carrot Cake Americano.<\/strong><\/p>\r\n<p><strong><img src=\"http:\/\/www.carolvaladares.com.br\/staff\/uploads\/2015\/materia_gastronomia3_carrotcake_cv.jpg\" alt=\"\" \/><\/strong><\/p>\r\n<h2>Bora cozinhar!<\/h2>\r\n<p><strong>Massa – Ingredientes:<\/strong> <br \/><strong>2<\/strong> xícaras de farinha de trigo <br \/><strong>1<\/strong> xícara de açúcar <br \/><strong>12<\/strong> xícara de açúcar mascavo <br \/><strong>2<\/strong> colheres de chá de canela em pó <br \/><strong>1<\/strong> colher de chá de noz-moscada <br \/><strong>2<\/strong> colheres de chá de bicarbonato de sódio <br \/><strong>1<\/strong> colher de chá sal <br \/><strong>1\/2<\/strong> xícara de passas <br \/><strong>1\/2<\/strong> xícara de ovo <br \/><strong>2<\/strong> claras de ovos <br \/><strong>2<\/strong> xícaras de cenoura ralada <br \/><strong>1\/2<\/strong> xícara de maçã ralada <br \/><strong>1\/3<\/strong> de xícara de óleo <br \/><strong>3<\/strong> colheres de sopa de água quente<\/p>\r\n<p><img src=\"http:\/\/www.carolvaladares.com.br\/staff\/uploads\/2015\/materia_gastronomia_carrotcake_cv.jpg\" alt=\"\" \/><\/p>\r\n<p><strong>Cobertura – Ingredientes:<\/strong> <br \/><strong>500g<\/strong> de Filadelphia <br \/><strong>1<\/strong> xícara de chá de açúcar de confeiteiro <br \/><strong>1<\/strong> colher de chá de extrato de baunilha <br \/>Nozes para decorar<\/p>\r\n<p><strong>Modo de preparo:<\/strong> <br \/>— Pré-aqueça o forno a 250ºC <br \/>— Pulverize duas bandejas de bolo redondo (9 polegadas) com spray de cozinha sem gordura. <br \/>— Misture a farinha, os dois tipos de açúcar, canela, noz-moscada, bicarbonato de sódio e sal em uma tigela média. <br \/>— Bata o ovo e as claras em uma tigela grande. <br \/>— Adicione a cenoura, maçã, óleo e passas e água quente, mexendo até misturar. <br \/>— Com uma espátula, adicione a mistura de farinha à mistura de cenoura e mexa até misturar. <br \/>— Espalhe a massa uniformemente nas bandejas de bolo. <br \/>— Asse os bolos até dourar cerca de 30-32 minutos.<\/p>\r\n<p>Deixe esfriar por 15 minutos. Retire os bolos da forma e deixe esfriar completamente.<\/p>\r\n<p>Para fazer a cobertura, com a batedeira em velocidade média-alta, bata os ingredientes da cobertura até ficar homogêneo. Recheie o bolo e cubra com o creme de cream cheese.<\/p>\r\n<p><img src=\"http:\/\/www.carolvaladares.com.br\/staff\/uploads\/2015\/materia_gastronomia2_carrotcake_cv.jpg\" alt=\"\" \/><\/p>\r\n<p>Doce tem que ser bonito, por isso eu sempre faço cobertura em bolo com bico de confeiteiro, daí vai da imaginação de cada um. Pique as nozes ou use-as inteiras e jogue por cima.<\/p>\r\n<p>Deixe esfriar e depois se<strong> destrua<\/strong> com o <strong>bolo deuso!<\/strong><\/p>",
"colunista":"denise",
"slug":"gastronomia\/carrot-cake-americano",
"thumbnail":"staff\/uploads\/2015\/denise-materia_gastronomia3_carrotcake_cv.jpg",
"tags":"carrot cake, cake, carrot, cenoura, bolo, receita, americano, estados unidos, eua, usa, bolo de cenoura",
"source":"",
"data":"2015-12-22",
"hora":"13:00:00",
"views":"56",
"categoria":"gastronomia",
"aprovado":"1"
}
]
post[0].title
$scope.post = JSON.parse(response.data);