AngularJS如何从其他文件中包含数组?

时间:2015-11-26 12:52:44

标签: javascript arrays angularjs angularjs-ng-include

我在控制器中定义了一些相当大的二进制(200kb)数组。现在我想将这些大型数组放在单独的文件中,并以某种方式包含它们或在我的控制器中获取它们。

有一种优雅的方式吗? 我可以将数组放在不同的服务中,然后从服务中获取数组吗?

3 个答案:

答案 0 :(得分:3)

您可以选择一个提供程序配方将阵列注入控制器,服务或指令。

https://docs.angularjs.org/guide/providers

恒定的配方将是一个良好的开端

myApp.constant('bigArray', myArray);

答案 1 :(得分:1)

只是详细说明@hansmaad的回答并提供demo

HTML

json

的JavaScript

json

<强>更新

HTML

<div ng-app="myApp" ng-controller="myController">
    <div ng-repeat="item in bigArray">
        <h1>{{item.name}}</h1>
    </div>
</div>

的JavaScript

var app = angular.module("myApp", []);

//In another file
app.constant("BigArray", [
    {
        name: "Item 1"
    },
    {
        name: "Item 2"
    },
    {
        name: "Item 3"
    }
]);
//In another file end

app.controller("myController", ["$scope", "BigArray", function($scope, BigArray){
    $scope.bigArray = BigArray; 
}]);

更新了JSFiddle

答案 2 :(得分:0)

您可以在不同的服务文件中对数组进行分类,并在控制器中注入这些服务以获取这些数组,然后可以在控制器文件中管理数据。您还可以将这些数组保存在简单的json文件中,并生成一个http get请求来获取该数据,如

$http.get('/path to your file')
 .success(function(data){
    //logic
    })
 .error(function(data){
            //capture error
});