Я использую угловые и grafana в моем проекте. У меня есть service
->dashboardViewStateSrv
объект создается дважды угловой
Моя_служба Код: объект
$scope.dashboardViewState = dashboardViewStateSrv.create($scope);
DashboardViewState
:
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;
}
}
В Мой контроллер Dashboard является творчеством дважды (Ctrl + Ctrl + Ctrl). Я создаю DashboardViewState
объект дважды, я хочу этого избежать. Если я могу избежать создания объекта DashboardViewState
в Side Menu ctrl?
Должно быть только одно состояние просмотра. По моему пониманию, все услуги являются одноточечными в угловых условиях.
Пожалуйста, руководствоваться мной, что я могу сделать?
Услуги Singleton, но поскольку вы принудительно создаете новый объект, создавая новый DashboardViewState ($ scope), создается новый экземпляр DashboardViewState и присваивается ему новый контекст. –
Если я не ошибаюсь, вы хотите позвонить на завод один раз и использовать его через различные контроллеры? –
Ананд Да, правильно .. Значит, я могу включить один раз и использовать его всегда. –