我在控制器中定义了一些相当大的二进制(200kb)数组。现在我想将这些大型数组放在单独的文件中,并以某种方式包含它们或在我的控制器中获取它们。
有一种优雅的方式吗? 我可以将数组放在不同的服务中,然后从服务中获取数组吗?
答案 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
});