22
respostas

Não consigo passar meu curinga pela url

Dada requisição, eu tentei passar o valor pela url, mas ao clicar no item não resulta em nada e o console não acusa erro:

MINHA LISTA

<ion-list>
<ion-item ng-repeat="planta in listaPlantas" href="#/plantaEscolhida/{{planta}}"><i class="ion ion-leaf balanced"></i> {{planta.title.rendered}}
<p ng-bind="thisCanBeusedInsideNgBindHtml">{{planta.content.rendered}}</p>
</ion-item>
 </ion-list>

MINHA COTROLLER

angular.module('starter')
.controller('plantaEscolhidaController', function($scope, $stateParams, PlantaService){

    $scope.plantaEscolhida = $stateParams.planta;

MINHA ROTA

valor em que este

.state ( "menu.listagem", { 
url: '/ Listagem', 
vistas: { 
'menuContent': { 
templateUrl: 'templates / listagem.html' 
}} 
})

valores onde ir para obter

.state("menu.plantaEscolhida", {
url: '/plantaEscolhida/:planta', 
views:{
  'menuContent':{
    templateUrl:'templates/plantaEscolhida.html'
  }}
22 respostas

Helio,

O unico problema que estou vendo no seu código é que você não especificou qual é a controller do template plantaEscolhida.html.

Lá no state tem q especificar a controller:

.state("menu.plantaEscolhida", {
url: '/plantaEscolhida/:planta', 
views:{
  'menuContent':{
    templateUrl:'templates/plantaEscolhida.html',
    controller: 'plantaEscolhidaController'
  }}

Sim, professor. Atualmente meu código está com a controller, mas ainda não está como eu esperava. Segue o código da controller:

angular.module('starter')
.controller('plantaEscolhidaController', function($scope, $stateParams, PlantaService){

    $scope.plantaEscolhida = $stateParams.planta;


});

Hélio,

O problema não é a controller e sim declaração de que essa controller é para aquela view/template.

Isso é feito lá no routes.js. Tenta colocar a controller como eu falei no outro comentário

Professor, após eu ter postado esse tópico eu inseri a controller sim. a rota esta assi:

 .state("menu.plantaEscolhida", {
    url: '/plantaEscolhida/:planta', 

    views:{
      'menuContent':{
        templateUrl:'templates/plantaEscolhida.html',
        controller: 'plantaEscolhidaController'
      }}     
 })

Helio,

A controller está sendo carregada certinho?

Colocar um alert ali na controller para ver se pelo menos a controller está sendo carregada certinho, pois não vejo problema em outro local.

Verdade, nem o alert e nem um console.log me retornar resultados

Então aí está o problema.

Posta aí pra gente, o state abstrato. Pois me parece q está errado lá.

Estou seguindo o mesmo padrão de ensinamento do curso:

.state("menu",{
    url:"/menu",
    templateUrl:'templates/menu.html',
    abstract:true,
    controller:'listagemController'
})

 .state("menu.listagem", {
    url: '/listagem', 
    views:{
           'menuContent':{
               templateUrl:'templates/listagem.html'
           }}     
 })

.state("menu.plantaEscolhida", {
    url: '/plantaEscolhida/:planta', 

    views:{
      'menuContent':{
        templateUrl:'templates/plantaEscolhida.html',
        controller: 'plantaEscolhidaController'
      }}     
 })

Helio,

A gente não criou esse tipo de menu, então está um pouco fora do padrão do curso, mas não tem problemas, eu estou tentando de ajudar mesmo.

Vamos agora tentar achar o erro.

o ion-nav-view está com esse nome aí: "menuContent" ? O arquivo de controller foi carregado lá no index? O arquivo de rota foi carregado lá no index?

Sim, a index há o carregamento das service, rotas e controller, vale ressaltar que na tag body tenho como controller o meu:

ng-controller="listagemController"

Sim, meu ion-nav-view está com meu menuContent, ressaltando que o menu é um arquivo separado (menu.html), segue:

<ion-side-menus enable-menu-with-back-views="true">

    <ion-side-menu-content ng-click="toggleLeftSideMenu()" side="left">

        <ion-nav-bar class="bar-balanced">
            <ion-nav-back-button>
            </ion-nav-back-button>

            <ion-nav-buttons side="left">
                <button class="button button-clear button-icon light ion-navicon" menu-toggle="left"></button>
            </ion-nav-buttons>
        </ion-nav-bar>

        <ion-nav-view name="menuContent"></ion-nav-view>
    </ion-side-menu-content>

    <ion-side-menu>

    <ion-header-bar class="bar-balanced">
        <h1 class="title">Menu</h1>
    </ion-header-bar>

        <ion-content>

        <ion-list>
            <ion-item href="#/menu/listagem" menu-close>Plantas Medicinais</ion-item>
            <ion-item href="#/" menu-close>Pesquisas avançadas</ion-item>
            <ion-item href="#/menu/dicas" menu-close>Dicas de Ouro</ion-item>
            <ion-item href="#/menu/enfermidades" menu-close>Efermidades</ion-item>
            <ion-item href="#/menu/sobre" menu-close>Sobre nós</ion-item>

        </ion-list>

        </ion-content>

    </ion-side-menu>

</ion-side-menus>

Nossa Helio, estamos perdidos hein, hahahaha...

Já tentou tirar esse ng-controller? Pq realmente ele não é necessário. É a unica coisa q estou vendo. =/

Já tirei e até mesmo mudei de lugar , nenhum dos dois deram certos.

Tentei me basear em links como estes:

http://mcgivery.com/understanding-ionics-side-menu/ http://robferguson.org/2015/01/07/ionics-sidemenu-template-and-nested-states/

E pesquisas no google como esta: https://www.google.com.br/webhp?sourceid=chrome-instant&ion=1&espv=2&ie=UTF-8#q=ion%20side%20menu%20routes

Ainda não obtive o sucesso. Eu aposto que poderá ser na estrutura html

Tenta criar uma nova controller do zero então e fazer o teste do alert. A gente já viu que o problema está sendo na controller. Crie uma nova e coloque lá no routes.js

Está dizendo em criar a controller :

menuContent

E dar um alerta a ela?

Não não. Criar uma plantaEscolhidaController nova, do zero. Então nessa nova controller criar o alert

Bem, criei e chamei ela na minha index e ela me retornou o resultado no meu console.log. Porém ainda não acontece nada quando eu clico no item

Então acho q o problema está agora no href do seu item.

Tente algo assim

href="#/menu/plantaEscolhida/{{planta}}"

Infelizmente não, professor. tentei de diversas formas ja. to seguindo isso agora:

http://robferguson.org/2015/01/07/ionics-sidemenu-template-and-nested-states/

Helio,

Pode colocar esse projeto no github para eu dar uma olhada e tentar rodar ele aqui na minha maquina?

Claro, professor. Acabei de colocar e aqui está o repositório: https://github.com/DeveloperBrasil/compartilhar

Vale ressaltar que eu estou fazendo uma requisição em site wordpress no meu localHost, Exemplo:

O titulo da postagem, é recoheida como title.rendered, o conteudo é reconhecido como content.rendered. Mas eu comentei a requisição e criei um array com valores só para o senhor tentar achar o erro.

Helio,

não consegui ver o erro. Você conseguiu avançar nisso?