Поэтому я следую очень базовому учебнику AngularJS, найденному здесь.
Я дошел до шага 10, но на мой взгляд ничего не отображается. Что дает?
Вот содержимое index.html:
<html>
<head>
<title>My Angular App!</title>
<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.2.19/angular.min.js"></script>
<script src="app.js"></script>
</head>
<body ng-app="flapperNews" ng-controller="MainCtrl">
<div ng-repeat="post in posts">
{{post.title}} - upvotes: {{post.upvotes}}
</div>
</body>
</html>
Вот комментарии app.js:
angular.module('flapperNews', [])
.controller('MainCtrl', [
'$scope',
function($scope){
$scope.test = 'Hello world!';
}]);
$scope.posts = [
{title: 'post 1', upvotes: 5},
{title: 'post 2', upvotes: 2},
{title: 'post 3', upvotes: 15},
{title: 'post 4', upvotes: 9},
{title: 'post 5', upvotes: 4}
];
проблема в том, что вы пытаетесь объявить $scope.posts
вне любого углового контекста, а именно контроллера MainCtrl
.
HTML
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>My Angular App!</title>
<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.2.19/angular.min.js"></script>
<script src="app.js"></script>
</head>
<body ng-app="flapperNews" ng-controller="MainCtrl">
<div ng-repeat="post in posts">
{{post.title}} - upvotes: {{post.upvotes}}
</div>
</body>
</html>
JS
angular.module('flapperNews', [])
.controller('MainCtrl', [
'$scope',
function($scope) {
$scope.test = 'Hello world!';
// We are inside a controller here:
$scope.posts = [{
title: 'post 1',
upvotes: 5
}, {
title: 'post 2',
upvotes: 2
}, {
title: 'post 3',
upvotes: 15
}, {
title: 'post 4',
upvotes: 9
}, {
title: 'post 5',
upvotes: 4
}];
}
]);