2015-07-11 3 views
0

Возможно, моя проблема кажется легкой для решения, но у меня есть эта проблема с тех пор, как много часов: когда я нахожусь в своей панели, все данные из моей базы данных Firebase видны (с Ng-repeat). Но я не могу найти решение для выбора одного конкретного элемента и посмотреть его данные на другой странице.AngularFire - Ошибка: не удалось разрешить '#/tabpost' из состояния 'tabdash'

Я проверил этот метод выше, и у меня есть эта ошибка «Ошибка: не удалось разрешить« #/tabpost »из состояния« tabdash ».

Это HTML (Это пример):

<div ng-repeat="post in posts"> 

<div class="card" ui-sref="#/post/{id}"> 
<h1>{{post.title}}</h1> 
<p>{{post.content}}</p> 
</div> 

</div> 

В App JS:

.state('tabpost', { 
    url: 'tabpost/id', 
    templateUrl: 'templates/tab-post.html', 
    controller: 'PostCtrl' 
    }) 

В службе JS (в пост Factory):

myApp.factory("Post", ["$firebaseArray", "$firebaseObject", function($firebaseArray, $firebaseObject) { 
var postRef = new Firebase('https://myApp.firebaseio.com/Posts/'); 
var userRef = new Firebase('https://myApp.firebaseio.com/Users/'); 
var posts = $firebaseArray(postRef); 

    var Post = { 

     all: posts, 

     get: function (postKey){ 
      var postId = $firebaseObject(postRef); 
       return $firebaseObject(eventRef.child('Posts').child(postId).child(userid)); 

       } 
      , 
     add: function (post){ 
      var postId = $firebaseArray(postRef, userRef); 
      event.userid = userRef.getAuth(); 
       return postId.$add(post); 
       } 
     } 
     return Post; 

}]); 

Мои PostCtrl:

myApp.controller('PostCtrl', ['$ionicFrostedDelegate', '$ionicScrollDelegate','$state','$scope', 'Post', 'Auth', '$firebaseObject', '$firebaseArray', '$routeParams', function($ionicFrostedDelegate, $ionicScrollDelegate, $state,$scope, Post, Auth, $firebaseObject, $firebaseArray, $routeParams) { 

    var PostRef = new Firebase("https://myApp.firebaseio.com/Posts"); 

var id = $routeParams.id; //get the id from url, $routeParams is injected in controller 

    $state.go('tabpost', { 
    id: $scope.id 
    }); 

    $scope.posts = Post.get(id); //call get() method of Post with the id retrieved 

    $scope.post = {'title': '', 'content': ''}; 

    $scope.auth = Auth; 

PS: потребовалось 3 дня и ночи, чтобы попробовать кучу учебников, в основном устаревших, и я уверен, что решение не может быть таким простым.

Я уже опубликовал три похожих вопроса вчера и позже, но каждый из предлагаемых решений не сработал. Я был бы очень благодарен человеку, который помог бы мне выйти из этого тупика.

У меня все еще есть небольшая проблема с обещанием jsFiddle Я научусь использовать его, как только я решил эту проблему.

Спасибо за предоставленную мне время

+0

Вы можете разместить больше вашего 'app.js' или создать codepen/plunker/некоторый пример кода? Если вы используете «ui-router» Ionic, тогда вы должны использовать '$ stateParams', а не' $ routeParams', а ваш url в определении вашего состояния должен быть таким, как этот 'url:' tabpost /: id'' (обратите внимание на двоеточие до id). См. [Этот блог] (http://www.gajotres.net/ionic-framework-tutorial-5-master-detail-pattern/) для получения дополнительной информации. – brandyshea

+0

Спасибо, я проверю его, и я вернусь. U хочу, чтобы весь мой маршрутизатор? – PositivProd

+0

'ui-sref =" #/post/{id} "' неверно. Вам нужно передать имя состояния, а не хэш, для ex '' .. См. Этот http: // stackoverflow.com/a/25647714/1516309 – jakeed1

ответ

0

Вам необходимо префикс для ваших имен переменных с двоеточием в URL вашего государства. Ваше состояние UI-маршрутизатор должен быть

.state('tabpost', { 
    url: 'tabpost/:id', 
    templateUrl: 'templates/tab-post.html', 
    controller: 'PostCtrl' 
    }); 

и вы должны ссылаться на него как

<div class="card" ui-sref="tabpost/{id}"> 
+0

Я попытался, но у меня такая же ошибка: Ошибка: не удалось разрешить 'tabpost/{id}' из состояния 'tabdash' – PositivProd

+0

посмотреть на DOM в вашей консоли, это {id} на самом деле вводится или остается строка "{id}"? –

+0

Всегда строка id .. – PositivProd

Смежные вопросы