Javascript 如何不缩小单个变量?
在我的例子中,使用AngularJS,我有一个json,其中包含一些可以在控制器中使用的配置。 当我缩小应用程序并且控制器变量名称与json不匹配时,就会出现问题 有没有办法不缩小一个变量 我的代码: setting.jsonJavascript 如何不缩小单个变量?,javascript,angularjs,json,minify,bundling-and-minification,Javascript,Angularjs,Json,Minify,Bundling And Minification,在我的例子中,使用AngularJS,我有一个json,其中包含一些可以在控制器中使用的配置。 当我缩小应用程序并且控制器变量名称与json不匹配时,就会出现问题 有没有办法不缩小一个变量 我的代码: setting.json { "settings": { "adIndex": 3 } } 控制器: function settingsService($q, $http, $log) { var settings = { adIndex: 0 };
{
"settings": {
"adIndex": 3
}
}
控制器:
function settingsService($q, $http, $log) {
var settings = {
adIndex: 0
};
var service = {
init: init,
getAdIndex: getAdIndex
};
return service;
function init() {
var deferred = $q.defer();
$http.get('assets/settings/settings.json').then(function(response) {
var loaded = response.data.settings;
if (loaded) {
settings = angular.extend(settings, loaded);
}
deferred.resolve(settings);
}, function(error) {
$log.info('Error loading settings', error);
deferred.reject(error);
});
return deferred.promise;
}
function getAdIndex() {
return settings.adIndex;
}
}
更新
根据你的建议,我对代码做了一些修改,但问题还没有解决。
控制器中的代码现在为:
function settingsService($q, $http, $log) {
var settings = {
'adIndex': 0
};
var service = {
init: init,
getAdIndex: getAdIndex
};
return service;
function init() {
var deferred = $q.defer();
$http.get('assets/settings/settings.json').then(function(response) {
var loaded = response.data['settings'];
if (loaded) {
settings = angular.extend(settings, loaded);
}
deferred.resolve(settings);
}, function(error) {
$log.info('Error loading settings', error);
deferred.reject(error);
});
return deferred.promise;
}
function getAdIndex() {
$log.debug('Object: ', settings); // result: settings { adIndex: 3 }
$log.debug('Value: ', settings['adIndex']); // result: 0
return settings['adIndex'];
}
}
“adIndex”如何在日志中有两个不同的值
var settings = {
"adIndex": 0 // quotes around the key, JSON style
};
不能100%确定你的迷你们如何处理这个问题,但通常他们不能修改字符串值。如果上述方法不起作用,您可以做一些更详细的事情:
var settings = {};
settings['adIndex'] = 0;
在这种情况下,变量
设置
将缩小,但字符串'adIndex'
将保持不变。这取决于缩小代码的方式?您正在使用什么minifyer?您正在尝试将硬编码变量名与JSON返回匹配?这听起来很脆弱…使用字符串,例如settings['adIndex']
它不会修改该字符串。不清楚这里有什么问题。缩小后哪个名称不匹配?旁注:您使用的是此处。感谢您的回答,但不是解决它。问题更新!