2013-09-12 3 views
1

Я хотел бы вывести основной список имен, а под списком отобразить текст. Этот текст должен отображаться только после нажатия на элемент, и он должен переключаться при выборе другого.Угловой js - базовый переключатель дополнительных значений объекта

То, что я получил до сих пор

<div ng-app> 
    <div ng-controller="contacts"> 
     <ul> 
      <li ng-repeat="person in people | orderBy:'name'"> 
       <a href="#">{{person.name}}</a> 
       <span>{{person.age}}</span> 

      </li> 
     </ul> 
     <div class="desc"> 
     <!-- I would like to output the descriptions here --> 
     </div> 
    </div> 
</div> 
<script> 
var contacts = function($scope) { 
    $scope.people = [ 
     {name:"paul", age:30, desc:"this is a description"}, 
     {name:"jax", age:33, desc:"this is another description right here"}, 
     {name:"yoda", age:33, desc:"final description goes here"}, 
     {name:"steve", age:53, desc:"jsut kidding - one more."} 
    ]; 
}; 
</script> 

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

Супер новый для углового, пожалуйста, извините меня, если это похоже на задержанный запрос. Ищите супер чистый, быстрый и простой способ сделать это. Любой вход будет отличным.

+0

Добавить http://plnkr.co/ это будет намного проще для людей дайте рабочее решение –

ответ

3

Есть не глупые вопросы; в какой-то момент мы все были новичками :)

Контроллер

var contacts = function($scope) { 
    $scope.people = [ 
     {name:"paul", age:30, desc:"this is a description"}, 
     {name:"jax", age:33, desc:"this is another description right here"}, 
     {name:"yoda", age:33, desc:"final description goes here"}, 
     {name:"steve", age:53, desc:"jsut kidding - one more."} 
    ]; 
    $scope.selectedPersonDescription = null; 
    $scope.selectPerson = function(person) { 
    $scope.selectedPersonDescription = person.desc; 
    } 
}; 

Просмотр

<div ng-app> 
    <div ng-controller="contacts"> 
     <ul> 
      <li ng-repeat="person in people | orderBy:'name'", ng-click="selectPerson(person)"> 
       <a href="#">{{person.name}}</a> 
       <span>{{person.age}}</span> 

      </li> 
     </ul> 
     <div class="desc"> 
     {{ selectedPersonDescription }} 
     </div> 
    </div> 
</div> 
+0

интуитивно у меня было это - но не было уверен, что держать там - я хочу, чтобы вы проголосовали за свой ответ за 9000+ раз за это, спасибо. совершенно простой и элегантный - потрясающий! задача здесь для меня на самом деле «получить» угловую простоту – pushplaybang

+0

@pushplaybang, что часто является проблемой для большинства людей. :) Что мне помогает - просто сказать, что делаете, а потом написать, что в какой-либо части приложения я говорю. Например, если я сказал: «Он отображает список имен», тогда напишите это в своем html - 'ng-repeat =» name в именах «'. И так далее с кнопками и всеми (не беспокойтесь о написании функции, просто напишите 'ng-click =" selectPerson (name) "и продолжайте. Тогда в контроллере вы узнаете, что вам нужна эта' $ scope .names = myService.getNames() '. И теперь вы знаете, что вам нужна услуга для получения имен для вас. Посмотрите, как легко? – m59

+0

наверняка, я думаю, что это отличный подход к принятию, я очень рад созданию javascript-приложений , но это определенно сдвиг парадигмы с использованием углового (тот, который мне очень нравится). – pushplaybang

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