Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/21.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代码_Javascript_Angularjs - Fatal编程技术网

如何改进此javascript代码

如何改进此javascript代码,javascript,angularjs,Javascript,Angularjs,我正在构建一个节点/角度应用程序。我不习惯使用javascript。我为所有静态列表对象提供了服务。我试图使这段代码尽可能通用。我想我可以做得更好。以下是我目前拥有的(我只放了2个,但我还有更多): 我想我可以做得更好,也许可以在一个列表中声明我的服务,然后循环建造工厂。 另外,在$resource中还有冗余,我想去掉它 但是我不知道怎么做。您可以在数组中添加'cities','boites',…,并使用for来生成代码,但这会有点复杂。你真的想要吗 function returnSolList

我正在构建一个节点/角度应用程序。我不习惯使用javascript。我为所有静态列表对象提供了服务。我试图使这段代码尽可能通用。我想我可以做得更好。以下是我目前拥有的(我只放了2个,但我还有更多):

我想我可以做得更好,也许可以在一个列表中声明我的服务,然后循环建造工厂。 另外,在$resource中还有冗余,我想去掉它


但是我不知道怎么做。

您可以在数组中添加
'cities','boites',…
,并使用
for
来生成代码,但这会有点复杂。你真的想要吗

function returnSolList (n, $resource) {
    return $resource(n+'/', {}, {'query' : {method : 'GET', cache : true, isArray:true } });
}

var names = ['Cities','Boites'];
for(var i=0; i<names.length; i++){
    mod.factory(
        names[i],
        [
            '$resource',
            (function(name){
                return function($resource){
                    return returnSolList(name, $resource);
                }
            })(names[i].toLowerCase())
        ]
    );
}
函数returnSolList(n$resource){
返回$resource(n+'/',{},{'query':{method'GET',cache:true,isArray:true});
}
变量名称=['Cities','Boites'];

对于(var i=0;我知道的解决方案工作得很好,代码也很简单。我想我可以通过循环使它更简单。但正如我所看到的,它相当复杂。我将保持我的代码不变。感谢你的答案和链接。我同意你的看法。通常循环使事情更简单,但当你必须在循环中声明函数时de有点复杂,人们会感到困惑。闭包编译器也非常适合调试。但在大文件上使用它时,请确保没有警告。如果您熟悉终端,它也有jar版本。
function returnSolList (n, $resource) {
    return $resource(n+'/', {}, {'query' : {method : 'GET', cache : true, isArray:true } });
}

var names = ['Cities','Boites'];
for(var i=0; i<names.length; i++){
    mod.factory(
        names[i],
        [
            '$resource',
            (function(name){
                return function($resource){
                    return returnSolList(name, $resource);
                }
            })(names[i].toLowerCase())
        ]
    );
}