Acesso a dados de JSON com js angulares

votos
1

Eu tenho um par de perguntas para acessar dados do modelo em minha página html usando angular. Eu sou novo para angular e foram tentar coisas diferentes, mas não foram bem sucedidos até agora.
Eu configurei um exemplo inventado em Plunker para ilustrar o meu caso de uso.
Meu arquivo js olha gostos isto:

 angular.module(myApp, ['ui.bootstrap']);
function AccordionDemoCtrl($scope) {
jsonData = {
    myLocation: montreal,
    locations : [
        montreal,
        new york
    ],
    carDealers: [
        {
            model : bmw,
            location: montreal
        },
        {
            model : honda,
            location: new york
        }
    ]
};
$scope.pageData = {
    data: jsonData,
    detailContentModel: 'bmw'
}
}

jsonData são os dados i obter do servidor. Eu tive problemas para colocar o meu código HTML formatado aqui, assim que eu tiver vinculado ao meu exemplo Plunker de trabalho abaixo.

Eu tenho 2 questões que eu estou tentando resolver:
Na minha página html que eu gostaria de exibir detalhes do carro, ou seja, modelo e localização em um div com base na seleção o carro de um usuário de um acordeão como menu.
O detalhe div tem dois elementos em que
1) Eu gostaria de mostrar a localização atual do carro e
2), em seguida, uma lista suspensa que exibe todos os outros locais, exceto para o local associado com o carro selecionado.
eg
No meu exemplo, se a BMW foi selecionado, em seguida, o detalhe div deve exibir o seguinte:
Carro Localização: Montreal
Mudança de local para: [Este suspensa deve exibir todos os locais, exceto Montreal]

Eu não sou inteiramente certo como fazer isso. É quase como eu preciso para usar uma expressão tipo XPath para acessar elementos de dados específicos de meus dados do modelo.
Fazer a ligação ao meu exemplo Plunker.

Nota: Vou tentar atualizar esta questão com alguns exemplos de código do que eu tentei - sem sucesso, uma vez que recebo um jeito do código de formatação aqui.

Por favor, ignore a formatação da página. Ainda novo para essas coisas ..

Publicado 25/05/2014 em 02:49
usuário
Em outras línguas...                            


1 respostas

votos
1

Eu acho que você configurar o plnkr rápida, então eu estou supondo que você realmente não iria escrever para fora todo o seu html para cada modelo e utilizar ng-switche que foi apenas por causa da velocidade ou então eu não sei por que você não iria codificar o local também, então quando você clica em um negociante na minha plnkr ele define pageData.selectedDealere usa é detalhes ( plnkr )

Para exibir a localização eu não ver o seu problema. Basta colocar o valor em chaves como você faz para o modelo:

Location: `pageData`.`selectedDealer`.`location`

Para evitar que o local atual de aparecer na sua lista você pode usar um filtro para removê-lo:

var app = angular.module("myApp", ['ui.bootstrap']);

app.filter('exclude', function() {
  return function(input, excludeValue) {
    var result = [];
    for (var i = 0; i < input.length; i++) {
      if (input[i] != excludeValue) {
        result.push(input[i]);
      }
    }
    return result;
  }
});

Em seguida, use o caractere pipe |com o nome do filtro, dois pontos e os argumentos para o filtro:

<select
    ng-options="location for location in pageData.data.locations | exclude:pageData.selectedDealer.location"
    ng-model="newLocation" ></select>
Respondeu 25/05/2014 em 04:46
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more