Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Como evitar erro ao passar string com sinal de interrogação?

Estou com a seguinte dúvida: Caso o nome de um dos carro tivesse um sinal de interrogação e eu desejasse exibir esse sinal, como faria para evitar o erro que é lançado no console ao selecionar o carro no form CarroEscolhidoController:

angular.module('starter')
.controller('ListagemController', function($scope, CarroService){
    $scope.listaDeCarros = [{"nome":"Gol 1.0", "preco": 7000, "descricao": "Você deseja um carro simples? Sua chance chegou"},{"nome":"Gol 2.0", "preco":16000, "descricao":"Já conhece as vantagens do novo Gol 2.0?"}]
});

Erro:

SyntaxError: Unexpected end of JSON input
    at JSON.parse (<anonymous>)
    at Object.fromJson (ionic.bundle.js:14655)
    at new <anonymous> (controllers.js:15)
    at Object.instantiate (ionic.bundle.js:18010)
    at $controller (ionic.bundle.js:23412)
    at Object.self.appendViewElement (ionic.bundle.js:59900)
    at Object.render (ionic.bundle.js:57893)
    at Object.init (ionic.bundle.js:57813)
    at Object.self.render (ionic.bundle.js:59759)
    at Object.self.register (ionic.bundle.js:59717)
2 respostas

Oi Marcus.

Ele entende essa ? como um caracter especial. Vi aqui no StackOverflow sobre a substituição de alguns caracteres:

http://stackoverflow.com/questions/18538620/special-characters-in-routeparams-executing-controller-twice-in-angularjs

Usa como base a primeira resposta, e faça a troca do caracter ? que vc quer.

solução!

Obrigado pela resposta, Lazaro. No entanto, acabei resolvendo de outra forma.

O problema era quando tentava passar o objeto para a outra view, se qualquer campo tivesse uma "?", um erro era lançado, então, adicionei um id para cada registro e passei ele como único parâmetro. Na outra view, a detalhes, utilizei o service novamente para retornar o registro baseado naquele id.