Ho due direttive personalizzate nella mia app angularJS. Un atto come genitore e altro come figlio. Sto provando ad accedere all'ambito del genitore all'interno della direttiva figlio. Ma non sto ottenendo l'output desiderato.Direttiva figlio personalizzata che accede all'ambito del genitore
<div ng-controller="CountryCtrl">
{{myName}}
<div ng-controller="StateCtrl">
<state nameofthestate="'Tamilnadu'">
<city nameofthecity="'Chennai'"></city>
</state>
</div>
</div>
e il mio script sembra
var app = angular.module("sampleApp",[]);
app.controller("CountryCtrl",function($scope){
$scope.myName = "India";
});
app.controller("StateCtrl",function($scope){
});
app.directive("state",function(){return {
restrict : 'E',
transclude: true,
scope : { myName : '=nameofthestate'},
template:"** {{myName}} is inside {{$parent.myName}}<br/><ng-transclude></ng-transclude>"
}});
app.directive("city",function(){return {
restrict : 'E',
require:'^state',
scope : { myName : '=nameofthecity'},
template:"**** {{myName}} is inside {{$parent.myName}} which is in {{$parent.$parent.myName }}<br/> "
}});
corrispondente JSFiddle disponibile in https://jsbin.com/nozuri/edit?html,js,output
L'uscita che sto ottenendo è
India
** Tamilnadu is inside India
**** Chennai is inside India which is in Tamilnadu
e il risultato atteso è
India
** Tamilnadu is inside India
**** Chennai is inside Tamilnadu which is in India
Qualcuno può educarmi su cosa sto facendo male qui?
scusa, ma il tuo violino non funziona per me. –
ciao http://stackoverflow.com/questions/23437113/get-property-value-from-parent-directive-within-child-directive questo potrebbe aiutarti ad assomigliare a quello che vuoi fare –
Puoi effettuare una trascrizione personalizzata con 'transclude: 'element''. Il costruttore è disponibile in 'link: function (scope, element, attrs, Ctlr, transclude) {}' – gr3g