我是 AngularJS 的新手,但非常渴望掌握它,所以请忘记我的无知。我在制作基本博客时遇到两个问题:
问题 #1:我有一个使用 $http 并完美接收 JSON 的控制器。
这是 app.js:
angular.module('blogApp', []).config(['$routeProvider',
function($routeProvider) {
$routeProvider.when('/home', {
templateUrl : 'home.html'
}).when('/post/:postId', {
templateUrl : 'post.html',
controller : postCtrl
}).otherwise({
redirectTo : '/home'
});
}]);
这是controller.js:
function postCtrl($scope, $http, $routeParams) {
$http.get('post.php?id=' + $routeParams.postId).success(function(data) {
$scope.post = data;
});
$scope.description = $scope.post.meta_description; /*I can't access this value*/
}
这是 $scope.post 在使用 #/post/123 时收到的 JSON:
[
{
'id':'123',
'title':'title of the post',
'date':'2013-06-14',
'content':'This is the content of the post.<br>She had a yellow house.',
'meta_description':'description of my first post.'
}
]
问题是在controller.js 中,我无法访问$scope.post.meta_description。我也尝试过使用 $scope.post[0].meta_description、data.post.meta_description 和 data.post[0].meta_description,但没有得到肯定的结果。
问题 #2:在 post.html 中,我有这段代码
<div>
<h1>{{post[0].title}}</h1>
<h2>Published on {{post[0].date}}</h2>
{{post[0].content}}
</div>
我练习了完整的 AngularJS 教程,应该使用 {{post.title}} 但 AngularJS 不打印任何内容。为了解决这个问题,我使用 {{post[0].title}}。为什么会这样?