У меня есть угловое приложение и несколько модулей.
Как вы можете видеть ниже, я вызываю директиву, что в mod2, на mod1template.html.
myvar получает значение в mod1Ctrl
Но угловой инициализирующий дочерний элемент first и myvar пуст в контроллере mod2.
Когда я googled, есть некоторые решения, но все для моего дела.
pre post links работает, когда оба родителя и ребенка являются директивами, но мой mod1 не имеет никакой директивы.
Я не хочу передавать параметр как атрибутУгловое ожидание для родительского контроллера
Есть ли еще решения для моего дела?
mod1template.html:
<div>
<mod2-dir></mod2-dir>
</div>
angular.module("angApp.mod1", ["ngRoute"])
.config(["$routeProvider", "$locationProvider", function ($routeProvider, $locationProvider) {
$routeProvider.when("/:myvar1/:myvar2\\_:id", {
templateUrl: "Angular/mod1template.html",
controller: "mod1Ctrl"
});
}])
.controller("mod1Ctrl", ["$routeParams", "$scope", "mod1DataService", function ($routeParams, $scope, mod1DataService) {
$scope.myvar = mod1DataService.myvar;
}
angular.module("angApp.mod2", ["ngRoute"])
.directive("mod2Dir", function() {
return {
restrict: "E",
templateUrl: "Angular/mod2template.html",
controller: "mod2Ctrl"
};
})
.controller("mod2Ctrl", ["$scope", function ($scope) {
alert($scope.myvar.Id);
}
Вы можете использовать $ broadcast или $ emit в зависимости от того, как установлен контроллер. –
Большое спасибо, $ broadcast работал для меня. если вы опубликуете его как ответ, я могу принять –
Я добавил ответ –