【发布时间】:2015-10-22 07:28:44
【问题描述】:
我正在构建一个类似于Admin Dashboard Theme的仪表板
我的 App 代码结构是这样的:
index.html:
<div ui-view=""></div>
main.html
<div ui-view=""></div>
<div ng-include='"app/dashboard/sidebar.html"'></div>
我在 main.html 中完成了视图的嵌套,我在其中注入了不同的视图。此外,由于我的右侧边栏是固定的,我希望它在所有主要视图中都是通用的。所以,我刚刚将它包含在我的 main.html 中。
现在,无论我向下滚动页面还是在侧边栏中执行任何操作,问题都以某种方式一次又一次地初始化我的 sidebar.html。我已经通过为 sidebar.html 视图中使用的每个控制器功能打印控制台日志来验证它。
这个问题与我的post有关:之前,我无法弄清楚实际问题。
以下是我的控制器和玉代码:
angular.module('myApp')
.controller('SidebarCtrl', function($scope, $rootScope) {
$scope.message = {};
$scope.addSideBarToggleClass = function() {
console.log("addSideBarToggleClass");
return true;
}
$scope.getStatusClass = function(status) {
console.log("getStatusClass");
return 'is-online';
}
$scope.openChat = function(receiver) {
console.log("openChat");
}
// etc...
});
<aside ng-class="{ 'control-sidebar-open' : addSideBarToggleClass()}"
ng-controller="SidebarCtrl">
<ul>
<li ng-class="{active: isTabSelected('chat')}">
<a data-toggle="tab" ng-click="updateCurrenTab('chat')"></a>
</li>
<li ng-class="{active: isTabSelected('home')}">
<a data-toggle="tab" ng-click="updateCurrenTab('home')"></a>
</li>
</ul>
<div>
<div ng-class="{active: isTabSelected('home')}">
<h3>Recent Activity</h3>
</div>
<div ng-class="{active: isTabSelected('chat')}">
<div>
<h4>Chat {{noOfUsersOnline}}</h4>
<div>Friends
<a href="#" ng-repeat="user in users" ng-click="openChat(user)">
<span ng-class="getStatusClass(user.status)"></span>
{{user.name}}</a>
</div>
</div>
</div>
</div>
</aside>
我看到很多"addSideBarToggleClass"、"getStatusClass" 的日志,每次点击openChat,我都会看到"openChat" 的日志,然后又看到"addSideBarToggleClass" 和"getStatusClass" 的日志
谁能指出这种行为可能存在的问题?
【问题讨论】:
-
代码太多,无法浏览。削减它以摆脱所有无关紧要的东西,这似乎是其中的大部分。如果人们不必阅读太多内容甚至可以查明问题所在,他们会更快地尝试找出答案。
-
@sethflowers:好的...我正在删除我认为不应该成为问题的代码。
-
@sethflowers:我已经更新了代码。如果还有什么需要做的,请告诉我
-
@dark_shadow,还是 waaay 太多了。您应该能够自己减少问题。我们需要所有样式标记吗?我们是否需要所有这些特定于应用程序的功能?除了在视图中显示
console.log之外,我们还需要任何 功能吗? -
@NewDev:我已经重新迭代了代码以减少它。请看一下,如果还需要改进,请告诉我?
标签: javascript html css angularjs angular-ui-router