Ich versuche Adressobjekt zu übergeben, das vom HTML-Element an eine Funktion im übergeordneten Controller übergeben wird (myAppController) zu einem Controller (dh DialogController) innerhalb des übergeordneten Controllers. Ich erstelle ein MD-Dialogfeld, wenn die Schaltfläche Bearbeiten angeklickt wird, sollten Elemente im Adressobjekt im MD-Dialogfeld angezeigt werden. Der md-Dialog funktioniert, kann aber die Einträge in der Adresse nicht anzeigen. Dies ist mein ControllerWie übergeben Sie ein Objekt, das vom HTML-Element an eine Funktion im übergeordneten Controller übergeben wird, an einen Controller im übergeordneten Controller
(function() {
'use strict';
angular
.module('myApp')
.controller('myAppController', myAppController);
myAppController.$inject = ['$scope', '$state','AddressesService'];
function myAppController ($scope, $state, AddressesService) {
var vm = this;
vm.addresses = AddressesService.query();
// this is a long controller so i cut short it to important part
$scope.showAdvanced = function(address, ev) {
$mdDialog.show({
controller: DialogController(address),
templateUrl: '/modules/carts/client/views/edit.tmpl.html',
parent: angular.element(document.body),
targetEvent: ev,
clickOutsideToClose:true,
fullscreen: $scope.customFullscreen // Only for -xs, -sm breakpoints.
});
function DialogController($scope, $mdDialog, address) {
console.log("address"+" "+address); // says undefined
$scope.hide = function() {
$mdDialog.hide();
};
$scope.cancel = function() {
$mdDialog.cancel();
};
$scope.answer = function(answer) {
$mdDialog.hide(answer);
};
}
};
}
}());`
und dies ist mein html ist
<div ng-repeat="address in vm.addresses">
<h5 class="list-group-item-heading uppercase bold" ng-bind="address.name"</h5>
<button ng-click="showAdvanced(address, $event)">Edit</button>
</div>`