Così, ho il seguente relativamente semplice direttiva Angularjsesponendo un oggetto in angularjs ambito direttiva, non può accedere alle proprietà
app.directive('myDirective', function() {
return {
restrict: 'E',
scope: {
site: '@',
index: '@'
},
template: '<div>{{site}}</div>',
replace: true,
}
});
E qui è dove io chiamo la direttiva in HTML
<div id="eventGraphic" class="span12">
<my-directive ng-repeat="site in IEvent.sites" site="{{site}}" index="{{$index}}"></my-directive>
</div>
che, dato che ogni site
è un oggetto, produce questa uscita (copiato dal browser)
{"name":"Hurlburt","_id":"5148bb6b79353be406000005","enclaves":[]}
{"name":"Walker Center","_id":"5148cca5436905781a000005","enclaves":[]}
{"name":"test1","_id":"5148ce94436905781a000006","enclaves":[]}
{"name":"JDIF","_id":"5148cf37436905781a000007","enclaves":[]}
Tuttavia, se cambio il modello nella direttiva su
template: '<div>{{site.name}}</div>',
non produce alcuna uscita. Questo sembra un caso d'uso abbastanza semplice, qualche idea su cosa potrei fare male? L'output desiderato sarebbe solo il campo name
in ciascun oggetto.
È il vostro direttiva intenzione di consentire all'utente di modificare i dati 'site', o creerà le sue proprietà sull'ambito? In caso contrario, probabilmente non è necessario un ambito isolato: è possibile salvare un po 'di memoria e fare in modo che la direttiva utilizzi l'ambito che ng-repeat crea. –