我正在使用Yeoman Mean.js生成器构建博客.到目前为止,我真的很喜欢使用Mean.js,但是我对Angular开发相对较新,所以有些东西还没有为我点击.
我想在我的应用程序的所有页面上隐藏标题,并且只有在我登录时才显示它.我将从标题中提取注册,并从单个位置登录以管理我的博客.
我尝试使用/app/views/layout.server.view.html中ng-show="topbarActive"的<header>元素:
<header ng-show="topbarActive" data-ng-include="'/modules/core/views/header.client.view.html'" class="navbar navbar-fixed-top navbar-default"></header>
Run Code Online (Sandbox Code Playgroud)
然后我尝试false在/public/modules/core/controllers/home.client.controller.js中明确设置此变量:
$scope.topbarActive = false;
我这个值设置为true在/public/modules/users/controllers/authentication.client.controller.js,在希望,我可以手动平的http://本地主机:3000 /#/注册,看到我的标题栏.
在此设置之后,我看不到任何地方的标题.看到我是如何对"The Angular Way"不熟悉的,为了实现我正在寻找的行为,我缺少哪些步骤.我对Mean.js构建它的依赖关系感到困惑吗?
小智 5
AngularJS的一个关键概念是范围界定.在这种特殊情况下,您的控制器HomeController被分配给标题下的第一个div .这使得HomeController范围对它的父(标题)不可用,它实际上根本没有任何控制器.
要使配置正常工作,请添加新控制器,例如:
/* /public/modules/core/controllers/body.client.controller.js */
'use strict';
angular.module('core').controller('BodyController', ['$scope', 'Authentication', 'Menus',
function($scope, Authentication, Menus) {
$scope.topbarActive = true;
}]);
Run Code Online (Sandbox Code Playgroud)
然后在layout.server.view.html中将此控制器添加到正文:
<body ng-cloak ng-controller="BodyController">
Run Code Online (Sandbox Code Playgroud)
或者,您只能为您的标签创建一个控制器,具体取决于您从这里开始的位置.
| 归档时间: |
|
| 查看次数: |
1156 次 |
| 最近记录: |