Ho creato una semplice direttiva "finestra di dialogo modale", che utilizza la funzione di esclusione. Vorrei inserire un form() all'interno della direttiva "modal dialog". Mi aspetterei che formController di un modulo inserito all'interno della direttiva, sarà accessibile nello scope del controller genitore, tuttavia non lo è. Date un'occhiata al seguente violino, per favore: http://jsfiddle.net/milmly/f2WMT/1/AngularJS: accesso a formController di un modulo inserito all'interno della direttiva transclused dal controllore principale
completo del codice:
<!DOCTYPE html>
<html>
<head>
<title>AngJS test</title>
<link rel="stylesheet" type="text/css" href="//cdn.jsdelivr.net/foundation/4.0.9/css/foundation.min.css">
<style>
.reveal-modal {
display: block;
visibility: visible;
}
</style>
<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/angularjs/1.1.4/angular.min.js"></script>
<script type="text/javascript">
var app = angular.module('app', []);
app.controller('appCtrl', function ($scope) {
$scope.model = {
id: 1, name: 'John'
};
$scope.modal = {
show: false
};
});
app.directive('modal', function() {
return {
scope: {
show: '='
},
transclude: true,
replace: true,
template: '<div class="reveal-modal small" ng-show="show"><div class="panel" ng-transclude></div></div>'
}
});
</script>
</head>
<body ng-app="app">
<div ng-controller="appCtrl">
<div class="panel">
Id: {{ model.id }}<br>
Name: {{ model.name }}<br>
Controller formController: {{ form }}<br>
Directive formController: {{ myForm }}<br>
</div>
<form name="form" class="panel">
<input type="text" ng-model="model.name">
</form>
<a ng-click="modal.show=!modal.show">toggle dialog</a>
<div modal show="modal.show">
<form name="myForm">
<input type="text" ng-model="model.name">
</form>
</div>
</div>
</body>
</html>
Quindi la mia domanda è come accedere o è possibile accedere formController della direttiva dal regolatore genitore?
Grazie per le risposte.
-Milano
È il violino giusto? Nessun riferimento a '$ scope.myForm' ovunque. – Langdon
C'è un {{myForm}} in HTML, che è lo stesso di $ scope.myForm, credo. – MilMly
C'è anche {{form}}, che fa riferimento a un modulo all'interno del controller ma al di fuori della direttiva. Questo funziona come previsto, ma myForm non raggiunge l'ambito genitore - l'ambito di appCtrl :-( – MilMly