Dire che abbiamo un insieme di progetti esposti tramite il servizio Progetto:Come associare oggetti complessi con radio e checkbox in AngularJS?
{ id: '123', name: 'Yeoman', watchers: '1233', ... }
{ id: '123', name: 'Grunt', watchers: '4343', ... }
Poi, abbiamo una forma di scegliere il vostro progetto preferito:
Select favorite project:
%label.radio(ng-repeat="project in Project.query()")
%input(type="radio" ng-model="data.favoriteProject" value="{{project.id}}") {{project.name}}
Questa imposta choices.favoriteProject al valore id del progetto scelto. Spesso, abbiamo bisogno di accedere all'oggetto correlato, non solo l'id:
John's favorite project:
{{Project.get(data.favoriteProject).name}}
Quello che sto cercando è un modo per legare le radio e caselle di controllo direttamente l'oggetto stesso, non l'ID, in modo che potessimo do
John's favorite project:
{{data.favoriteProject.name}}
invece. Questo è possibile con la direttiva select tramite ng-options, ma come possiamo farlo con radio e checkbox? Mi piacerebbe ancora usare gli id per la corrispondenza al posto dei riferimenti, se possibile.
per chiarire, ecco un esempio quello che sto cercando
Select favorite project:
%label.radio(ng-repeat="project in Project.query()")
%input(type="radio" ng-model="data.favoriteProject" value="{{project}}" ng-match="id") {{project.name}}
Dice: "Si prega di legare data.favoriteProject all'oggetto progetto vero e utilizzare l'ID per verificare se corrispondono (invece di riferimenti)".
Grazie! Mi piace davvero questa soluzione. È semplice, ma funziona perfettamente! Lascerò la domanda aperta per altre soluzioni per ora. Il problema con questo è che c'è la duplicazione dei dati (l'id) e dobbiamo gestire noi stessi impostando il valore. – randomguy
Perché utilizzare i progetti [$ indice] anziché solo l'oggetto del progetto? – randomguy
Ho effettuato il refactoring in jsFiddle, ma ho dimenticato di aggiornare il post. Grazie! –