我在我的项目中使用 angular 和 grafana。我有一个service
->dashboardViewStateSrv
我的服务代码:
define([
'angular',
'lodash',
'jquery',
],
function (angular, _, $) {
'use strict';
var module = angular.module('grafana.services');
module.factory('dashboardViewStateSrv', function($location, $timeout) {
function DashboardViewState($scope) {
var self = this;
self.state = {};
self.panelScopes = [];
self.$scope = $scope;
// something
}
return {
create: function($scope) {
return new DashboardViewState($scope);
}
};
});
});
在我的侧面菜单控制器中:
$scope.dashboardViewState = dashboardViewStateSrv.create($scope);
if ($scope.dashboardViewState) {
if($scope.dashboardViewState.state.citreedepth){
depth = +$scope.dashboardViewState.state.citreedepth;
}
}
在我的仪表板控制器中:
$scope.dashboardViewState = dashboardViewStateSrv.create($scope);
DashboardViewState
对象被创建两次(Dashboard Ctrl 和 Side Menu ctrl)。我创建了DashboardViewState
两次对象,我想避免这种情况。如果我可以避免DashboardViewState
在侧边菜单 ctrl 中创建对象?
应该只有一种视图状态。据我了解,所有服务都是有角度的。
请指导我能做什么?