So it seems like if I "rebroadcast" an event from the main page ("home")
the partial controller is catching that event:
homepage view:
//Catch the UserInfoSynched event
$rootScope.$on('UserInfoSynched', function (e, obj) {
$timeout(function () {
//Update the list of yard sale the user belows to
$scope.$broadcast("TestBroadcast", "here");
});
});
Then in the partial views:
$scope.$on("TestBroadcast", function (e, data) {
console.log("In MyPartial1Controller");
});
Seems to work like that. Is that the only way to get something like this
to work? Or am I missing a more obvious way?
Thanks!
On Friday, December 12, 2014 4:48:50 PM UTC-5, Gary wrote:
>
> Hello all,
> When a user first enters my app, they are automatically logged in, at
> this time the user json object is populated when then fires a
> $rootScope.$broadcast("UserInfoSynched") message. At this time, the home
> page starts to paint.
> I built a very simple dynamic directive that based on the type displays a
> different panel display:
>
> app.directive("panelDisplay", function ($rootScope, $compile) {
> return {
> restrict: 'E',
> templateUrl: function(elem, attr){
> return "/Content/views/partial/"+ attr.type + "Display.html";
> }
> };
> });
>
> Each panel display has it's own controller. Within that controller, I
> would like the broadcast "UserInfoSynched" message caught, which would then
> paint the panel with the correct user info. The panel is displayed
> correctly, but it never goes into my $rootScope.$on("UserInfoSynched",
> ....) area to fire the call to get the user information needed.
>
> Here is one of the partial panel controllers:
> appCtrls.controller('MyItemsController', ['$rootScope', '$scope',
> '$filter', 'NotifyService', 'SessionService','UtilityService',
> function ($rootScope, $scope, $filter, notify, session, utils) {
> var _my_product_list = [];
> var _scrnType = utils.screenType();
> var _isLoaded = false;
>
> $scope.MyProducts = function () {
> return _my_product_list;
> };
>
> //Events
>
> //If the window is resized to a larger size and it hasn't been
> loaded yet, then load the items
> $(window).on("resize", function () {
> if (!_isLoaded && _scrnType == utils.screenSize.Desktop ||
> _scrnType == utils.screenSize.lgDesktop) {
> _getMyItemsForSale();
> $scope.$apply();
> }
> });
>
>
> //Catch the UserInfoSynched event
> $rootScope.$on('UserInfoSynched', function (e, obj) {
> $timeout(function () {
> if (_scrnType == utils.screenSize.Desktop || _scrnType ==
> utils.screenSize.lgDesktop) {
> //Get the items the user has put up for sal
> _getMyItemsForSale();
> _isLoaded = true;
> }
> });
> });
>
> //Catch the OnProductsUpdated event
> $rootScope.$on('OnProductsUpdated', function (e, obj) {
> $timeout(function () {
> if (_scrnType == utils.screenSize.Desktop || _scrnType ==
> utils.screenSize.lgDesktop) {
> //Get the items the user has put up for sal
> _getMyItemsForSale();
> _isLoaded = true;
> }
> });
> });
>
>
>
> //***************************************************
> //* Method to synch the product listing when needed *
> //***************************************************
> function _getMyItemsForSale() {
>
> //Code in here would get all the items for the user
>
> }
> }
> ]);
>
> Thanks very much!
>
--
You received this message because you are subscribed to the Google Groups
"AngularJS" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/angular.
For more options, visit https://groups.google.com/d/optout.