@maxprof
Студент

Как найти ошибку?

Здравствуйте.
Подскажите как определить ошибку пожалуйста.
76e0f5c1025849fda23ae1d0925429ea.PNG
Вот код контроллера
.controller('PostsCtrl',['$scope','$stateParams','$posts', function($scope,$stateParams,$posts){
	$scope.post = posts.posts[$stateParams.id];
	$scope.addComment = function(){
	  if($scope.body === '') { return; }
	  $scope.post.comments.push({
	    body: $scope.body,
	    author: 'user',
	    upvotes: 0
	  });
	  $scope.body = '';
	};
}]);

Вот код вьюхи
<script type="text/ng-template" id="/posts.html">

        <div class="page-header">
          <h3>
            <a ng-show="post.link" href="{{post.link}}">
              {{post.title}}
            </a>
            <span ng-hide="post.link">
              {{post.title}}
            </span>
          </h3>
        </div>

        <div ng-repeat="comment in post.comments | orderBy:'-upvotes'">
          <span class="glyphicon glyphicon-thumbs-up"
            ng-click="incrementUpvotes(comment)"></span>
          {{comment.upvotes}} - by {{comment.author}}
          <span style="font-size:20px; margin-left:10px;">
            {{comment.body}}
          </span>
        </div>

        <!-- post template -->

        <form ng-submit="addComment()" style="margin-top:30px;">
          <h3>Add a new comment</h3>
          <div class="form-group">
            <input type="text"
            class="form-control"
            placeholder="Comment"
            ng-model="body"></input>
          </div>
          <button type="submit" class="btn btn-primary">Post</button>
        </form>

      </script>

На этой странице должен выводится список комментариев.
  • Вопрос задан
  • 136 просмотров
Пригласить эксперта
Ответы на вопрос 3
mmmaaak
@mmmaaak
Ошибки в консоли неспроста выглядят в виде ссылок. Не пробовали перейти по ней?
Ответ написан
@zolotykh
web-разработчик
Какая то проблема с провайдером $posts.
Обратите внимание, глобальна ли у вас переменная posts?
Ответ написан
Комментировать
@Apx
Java/JavaEE/Javascript developer
Ну вроде оно матерится на $posts, что нет провайдера для этого имени в $injector.
Вариант 1. У вас нет какого-то сервиса или прочего с этим имененм в ангуляре на момент перехода в этот state.
Вариант 2. Вы используете ui-router. Если используете в state конфигах resolve, то может просто в этом (или родительском для него) стейте нет такой переменной которую вы пытаетесь получить при помощи DI.

$stpr.state('someState', {
                url: '/someUrl',
                ....
                resolve: {
                   $posts : //достаём посты. $http или ещё как-то
                }
            })
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы