Javascript 我如何在angular中实现对我的应用程序的广播

Javascript 我如何在angular中实现对我的应用程序的广播,javascript,html,angularjs,Javascript,Html,Angularjs,console.log'js'; var myApp=angular.module'myApp',[ngRoute]; myApp.configfunction$routeProvider{ $routeProvider。当“/”时{ templateUrlnp:'views/partials/logIn.html', 控制器:“作为lc登录控制器” }.当“/注册”时{ templateUrl:'views/partials/register.html', 控制器:“注册控制器作为rc” }。

console.log'js'; var myApp=angular.module'myApp',[ngRoute]; myApp.configfunction$routeProvider{ $routeProvider。当“/”时{ templateUrlnp:'views/partials/logIn.html', 控制器:“作为lc登录控制器” }.当“/注册”时{ templateUrl:'views/partials/register.html', 控制器:“注册控制器作为rc” }。当“/login”时{ templateUrl:'views/partials/logIn.html', 控制器:“作为lc登录控制器” }。当“/userProfile”时{ templateUrl:'views/partials/userProfile.html', 控制器:“UserProfileController作为uc” }; }; //结束配置 //全局变量 myApp.controller'DefaultController',DefaultController; myApp.controller'RegisterController',RegisterController; myApp.controller'LoginController',LoginController; 控制器'UserProfileController',UserProfileController; 函数DefaultControllernavBarService{ var vm=这个; console.log“DefaultController内部”; navBarService.toggleHeadervm.toggleHeader; vm.toggleHeader=true; }//结束默认控制器 功能注册控制器基本服务{ var vm=这个; console.log'RegisterController'; vm.register=函数{ 如果vm.firstNameRegister==未定义| | vm.lastNameRegister==未定义| | vm.emailRegister==未定义| | vm.passwordRegister==未定义| | vm.zipcode==未定义{ 甜心{ 标题:错误!, 文本:出了点问题, 类型:错误 }//sweetAlert结束 }否则,如果vm.firstNameRegister===| | vm.lastNameRegister===| | vm.emailRegister===| | vm.passwordRegister===| | vm.zipcode==null{ 甜心{ 标题:错误!, 文本:出了点问题, 类型:错误 }//sweetAlert结束 }否则{ var userCredentials={ firstName:vm.firstNameRegister.toLowerCase, lastName:vm.lastNameRegister.toLowerCase, 电子邮件:vm.emailRegister, 密码:vm.passwordRegister, zipcode:vm.zipcode };//结束用户凭据 credentialsService.sendRegisteruserCredentials; }//条件语句的结尾 };//结束寄存器函数 }//结束寄存器控制器 功能登录控制器基本服务{ var vm=这个; console.log'LoginController'; vm.login=函数{ 如果vm.emailLogin==未定义| | vm.passwordLogin==未定义{ 甜心{ 标题:错误!, 文本:出了点问题, 类型:错误 }//sweetAlert结束 }否则{ var userCredentials={ 电子邮件:vm.emailLogin, 密码:vm.passwordLogin };//结束用户凭据 console.loguserCredentials; credentialsService.sendLoginuserCredentials.Then函数{ console.log'back from the service with',credentials service.response; 如果credentialsService.response=='匹配!!!'{ var id=userCredentials.email; credentialsService.getUsersid; window.location.replacehttp://localhost:7138/!/userProfile; }否则{ 甜心{ 标题:错误!, 文本:未找到用户, 类型:错误 }//sweetAlert结束 }//其他的结束 }//到此为止 }//else条件语句的结尾 };//结束登录函数 }//结束寄存器控制器 函数UserProfileController{ console.log'insideofuserprofilecontroller'; var vm=这个; vm.getUserInfo=函数{ console.log'insideofgetuserinfo'; };//getUserInfo的结尾 }//用户配置文件结束 租赁应用程序 航行 当用户导航到登录或注册控制器时,如何设置vm.toggleHeader=false以隐藏nav div

DefaultController可以使用$route服务来确定当前使用的templateUrl:

function DefaultController(navBarService, $route) {
  var vm = this;
  console.log('inside of DefaultController');
  navBarService.toggleHeader(vm.toggleHeader);
  vm.toggleHeader = true;
  vm.$doCheck = function() {
      vm.toggleHeader = true;
      if ($route.current.templateUrl == 'views/partials/logIn.html') {
          vm.toggleHeader = false;
      };
      if ($route.current.templateUrl == 'views/partials/register.html') {
          vm.toggleHeader = false;
      };
  };          
}
在每个摘要循环中,$doCheck函数将检查当前路线,并将toggleHeader设置为适当的值

有关详细信息,请参阅

可能的答案: