Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/403.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Angular JS组织依赖项和变量的最佳实践_Javascript_Angularjs - Fatal编程技术网

Javascript Angular JS组织依赖项和变量的最佳实践

Javascript Angular JS组织依赖项和变量的最佳实践,javascript,angularjs,Javascript,Angularjs,我正在从事一个项目,在这个项目中,我了解了在我加入公司前一年一群海外开发商所做的事情。这是一个没有文档的大型项目。我很好奇,是否有人见过这样的情况,代码中包含了这么多依赖项,然后每个依赖项都重命名为变量(e、t、n、r、s、a),然后包含在一个复杂的嵌套结构中,对于一个控制器来说,该结构有140行长。这被认为是编码的最佳实践吗 我有一种感觉,这比它需要的更混乱。有人知道一种有效的工具或方法来映射依赖项、变量等并重新组织代码吗 示例代码 define(["./../_module", "momen

我正在从事一个项目,在这个项目中,我了解了在我加入公司前一年一群海外开发商所做的事情。这是一个没有文档的大型项目。我很好奇,是否有人见过这样的情况,代码中包含了这么多依赖项,然后每个依赖项都重命名为变量(e、t、n、r、s、a),然后包含在一个复杂的嵌套结构中,对于一个控制器来说,该结构有140行长。这被认为是编码的最佳实践吗

我有一种感觉,这比它需要的更混乱。有人知道一种有效的工具或方法来映射依赖项、变量等并重新组织代码吗

示例代码

define(["./../_module", "moment"], function (e, t) {
"use strict";
e.controller("trendController", ["$scope", "$state", "$q", "$rootScope", "labelsService", "trendService", "gridSettingsService", "colorpickerSettingsService", "loadDisplay", "uiGridConstants", "APP_CONSTANTS", "globalErrorService", "utilsService", "usersService", "browserHelper", "pageErrorHandlingHelper", function (e, t, n, r, s, a, l, d, i, o, c, u, g, f, b, v) {
    function h(t) {
        var n = angular.copy(C);
        return n.graphColor = e.defaultColors[t], n
    }

    function D() {
        var t = n.all([O, j])["catch"](p.errorHandlingActions.loadedFailed);
        i.addDisplay(t, "", e.gridAreaId)
    }
    var p = this;
    p.errorHandlingActions = v.errorHandlingActions, e.hasMeasurementsUnitsClash = !1, e.gridAreaId = "trendWrapper", e.labels = {
        genchoosedev: "",
        genchooseobj: "",
        generror: "",
        gennodata: "",
        genhour: "",
        genday: "",
        genweek: "",
        gencustom: "",
        gendatetime: "",
        tndlink: "",
        tnddevlbl: "",
        tndptlbl: "",
        tndclrlbl: "",
        tndexport: "",
        tndtbllbl: "",
        tndgphlbl: "",
        tnddataempty: "",
        tndtime: "",
        tndpointhdr: "",
        tndgphmeas: ""
    };
    var O = s.getLabelsForPage(e.labels).then(function (t) {
        e.labels = t
    });
    e.defaultColors = c.TRENDS.DEFAULT_COLORS, e.trendPointsMax = c.TRENDS.TREND_POINTS_MAX, e.devicesObjects = [], e.defaultColorPickerOptions = d.getSettings(), e.isPredefinedFiltersUsed = !1;
    var j = a.getAllTrendDeviceObjects().then(function (t) {
            return _.forEach(t, function (e) {
                e.objects = _.sortBy(e.objects, "objName")
            }), e.devicesObjects = _.sortBy(t, "name"), f.getTrendInfoSettings(r.sessionUser.userName).then(function (t) {
                if (t.trendLines && "0" != t.trendLines[0].devInst) {
                    e.startDate = t.trendStart, e.endDate = t.trendEnd;
                    var n = [];
                    _.forEach(t.trendLines, function (t) {
                        var r = angular.copy(C);
                        r.deviceObjects = _.find(e.devicesObjects, {
                            id: t.devInst
                        }), r.selectedObject = _.find(r.deviceObjects.objects, {
                            objID: t.objID
                        }), r.graphColor = t.colorVal, n.push(r)
                    }), e.selectedDeviceObjects = n, e.isPredefinedFiltersUsed = !0, e.triggerReloadDataWithPredefinedFilters()
                }
                e.$watch("selectedDeviceObjects", function (t, n) {
                    var r = _.last(t);
                    if (angular.isDefined(r) && null !== r.selectedObject) {
                        var s = parseInt(r.selectedObject.objID);
                        !isNaN(s) && angular.isNumber(s) && t.length < e.trendPointsMax && t.push(h(t.length))
                    }
                    if (t.length >= 2) {
                        var a = t[t.length - 2];
                        null === a.selectedObject && null === r.deviceObjects && t.splice(t.length - 1, 1)
                    }
                    e.HasDataToDisplay = _.filter(t, function (e) {
                        return null !== e.selectedObject
                    }).length > 0, e.saveTrendInfoForCurrentUser()
                }, !0), e.$watchGroup(["startDate", "endDate"], function (t, n) {
                    e.saveTrendInfoForCurrentUser()
                })
            })
        }),
        C = {
            deviceObjects: null,
            selectedObject: null,
            gridOptions: null,
            graphColor: e.defaultColors[0]
        };
    e.selectedDeviceObjects = [angular.copy(C)], e.HasDataToDisplay = !1, D(), e.reloadHandler = null, e.unitsOfMeasureCounts = [], e.$watchCollection("unitsOfMeasureCounts", function (t) {
        var n = {};
        _.each(t, function (e) {
            null !== e && (n[e] ? n[e]++ : n[e] = 1)
        }), e.hasMeasurementsUnitsClash = Object.keys(n).length > 2
    }), e.TriggerDataLoad = function (t, n) {
        null === n.deviceObjects && (n.selectedObject = null), n.selectedObject ? e.unitsOfMeasureCounts[t] = n.selectedObject.units : e.unitsOfMeasureCounts[t] = null, null != e.reloadHandler && e.reloadHandler(t, n)
    }, e.colorChangedHandler = null, e.TriggerColorChanged = function (t, n) {
        null !== e.colorChangedHandler && e.colorChangedHandler(t, n)
    };
    var S = function () {
        var t = {
            preselectedDataPoints: [],
            datesRange: {
                start: e.startDate,
                end: e.endDate
            }
        };
        return _.forEach(e.selectedDeviceObjects, function (e) {
            angular.isDefined(e.deviceObjects) && null != e.deviceObjects && angular.isDefined(e.selectedObject) && null != e.selectedObject && t.preselectedDataPoints.push({
                deviceId: e.deviceObjects.id,
                objectId: e.selectedObject.objID
            })
        }), t
    };
    e.redirectToExportTrend = function () {
        var e = S(),
            n = JSON.stringify(e);
        t.go("exportTrendData", {
            paramsJson: n
        })
    }, e.saveTrendInfoForCurrentUser = function () {
        var t = {
            selectedDeviceTrends: e.selectedDeviceObjects,
            datesRange: {
                start: e.startDate,
                end: e.endDate
            }
        };
        return f.updateTrendInfoSettings(r.sessionUser.userName, t).then(function (e) {}, p.errorHandlingActions.failed)
    }, e.startDate = null, e.endDate = null, e.exportSelectedPoints = function () {
        var e = S();
        return a.exportTrendData(e.preselectedDataPoints, e.datesRange).then(function (e) {
            angular.isDefined(e) && e.length > 0 && b.saveFileAsCSV(e)
        }, p.errorHandlingActions.failed)
    }
}])
define([“/。/”模“,”矩“],函数(e,t){
“严格使用”;
e、 控制器(“trendController”、[“$scope”、“$state”、“$q”、“$rootScope”、“labelsService”、“trendService”、“gridSettingsService”、“ColorPickerSettingService”、“loadDisplay”、“uiGridConstants”、“APP_常量”、“globalErrorService”、“UtilService”、“usersService”、“browserHelper”、“pageErrorHandlingHelper”函数(e,t,n,r,s,a,l,d,i,o,c,u,g,f,b,v){
函数h(t){
var n=角度复制(C);
返回n.graphColor=e.defaultColors[t],n
}
函数D(){
var t=n.all([O,j])[“catch”](p.errorHandlingActions.loadedFailed);
i、 添加显示(t,“,例如gridAreaId)
}
var p=这个;
p、 errorHandlingActions=v.errorHandlingActions,e.HasMeasurementUnitsCash=!1,e.gridAreaId=“trendWrapper”,e.labels={
genchoosedev:“,
genchooseobj:“,
一般错误:“”,
根诺达:“,
genhour:“,
性别:“,
genweek:“,
gencustom:“,
性别时间:“,
tndlink:“,
tnddevlbl:“,
tndptlbl:“”,
tndclrlbl:“”,
tndexport:“”,
tndtbllbl:“”,
tndgphlbl:“”,
tnddataempty:“,
tndtime:“”,
tndpointhdr:“”,
tndgphmeas:“
};
var O=s.getLabelsForPage(e.labels)。然后(函数(t){
e、 标签=t
});
e、 DefaultColor=c.TRENDS.DEFAULT_Color,e.trendPointsMax=c.TRENDS.TREND_POINTS_MAX,e.devicesObjects=[],e.defaultColorPickerOptions=d.getSettings(),e.IsPreferencedFilterSussed=!1;
var j=a.GetAllTrendDeviceObject().then(函数(t){
返回u0.forEach(t,函数(e){
e、 objects=u.sortBy(例如objects,“objName”)
}),e.devicesObjects=u.sortBy(t,“name”),f.getTrendInfoSettings(r.sessionUser.userName)。然后(函数(t){
如果(t.trendLines&“0”!=t.trendLines[0].devInst){
e、 startDate=t.trendStart,e.endDate=t.trendEnd;
var n=[];
_.forEach(t.趋势线,函数(t){
var r=角度。复制(C);
r、 deviceObjects=uu.find(例如deviceObjects{
id:t.devInst
}),r.selectedObject=uu.find(r.deviceObjects.objects{
objID:t.objID
}),r.graphColor=t.colorVal,n.push(r)
}),e.selectedDeviceObjects=n,e.ispreferencedFilterSussed=!0,e.triggerReloadDataWithPredefinedFilters()
}
e、 $watch(“所选设备对象”,函数(t,n){
var r=最后一个(t);
如果(角度已定义(r)&&null!==r.selectedObject){
var s=parseInt(r.selectedObject.objID);
!isNaN(s)和角度。isNumber(s)和t.length=2){
var a=t[t.长度-2];
null==a.selectedObject&&null==r.DeviceObject&&t.splice(t.length-1,1)
}
e、 HasDataToDisplay=551;.filter(t,函数(e){
返回null!==e.selectedObject
}).length>0,例如saveTrendInfoForCurrentUser()
},0),例如$watchGroup([“开始日期”,“结束日期]),函数(t,n){
e、 saveTrendInfoForCurrentUser()
})
})
}),
C={
DeviceObject:空,
selectedObject:null,
gridOptions:null,
graphColor:e.DefaultColor[0]
};
e、 selectedDeviceObjects=[angular.copy(C)],e.HasDataToDisplay=!1,D(),e.reloadHandler=null,e.unitsOfMeasureCounts=[],e.$watchCollection(“unitsOfMeasureCounts”,函数(t){
var n={};
_.每个(t,函数(e){
null!==e&&(n[e]?n[e]+:n[e]=1)
}),e.hasMeasurementsUnitsCash=对象。键(n)。长度>2
}),e.TriggerDataLoad=函数(t,n){
null==n.DeviceObject&&(n.selectedObject=null),n.selectedObject?e.unitsOfMeasureCounts[t]=n.selectedObject.units:e.unitsOfMeasureCounts[t]=null,null!=e.reloadHandler&&e.reloadHandler(t,n)
},e.colorChangedHandler=null,e.TriggerColorChanged=function(t,n){
null!==e.colorChangedHandler&&e.colorChangedHandler(t,n)
};
var S=函数(){
变量t={
预选数据点:[],
日期范围:{
开始日期:e.startDate,
完:e.endDate
}
};
返回u0.forEach(e.selectedDeviceObject,函数(e)){
angular.isDefined(e.DeviceObject)和&null!=e.DeviceObject和&angular.isDefined(e.selectedObject)和&null!=e.selectedObject和&t.preselectedDataPoints.push({
deviceId:e.deviceObjects.id,
objectId:e.selectedObject.objID
})
}),t
};
e、 redirectToExportTrend=函数(){
var e=S(),
n=JSON.stringify(e);
t、 去(
function notifyCtrl($scope, notify) {
    $scope.msg = 'Hello! This is a sample message!';
    $scope.demo = function () {
        notify({
            message: $scope.msg,
            classes: $scope.classes,
            templateUrl: $scope.template
        });
    };
    $scope.closeAll = function () {
        notify.closeAll();
    };
}
angular
.module('angularModule')
.controller('notifyCtrl', notifyCtrl);