У меня есть довольно большие двоичные (200kb) массивы, определенные внутри контроллера. Теперь я хочу поместить эти большие массивы в отдельные файлы и как-то включить их или заполучить их в своем контроллере.
Есть ли элегантный способ сделать это? Могу ли я разместить массивы в разных службах, а затем получить массивы из служб?
Просто чтобы уточнить на @hansmaad ответ и предоставить демонстрационную версию
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;
}]);
ОБНОВИТЬ
HTML
<div ng-app="myApp" ng-controller="myController">
<div ng-repeat="item in bigArray">
<h1>{{item}}</h1>
</div>
</div>
JavaScript
var app = angular.module("myApp", []);
//In another file
app.constant("BigArray", new Uint8Array([0x10, 0x20, 0x30]));
//In another file end
app.controller("myController", ["$scope", "BigArray", function($scope, BigArray){
$scope.bigArray = BigArray;
}]);
Обновлен JSFiddle
[{ name: "Item 1" },...]
Вы можете выбрать один из рецептов поставщика, чтобы ввести массив в контроллеры, службы или директивы.
https://docs.angularjs.org/guide/providers
Постоянный рецепт был бы хорошим началом
myApp.constant('bigArray', myArray);
constant
в Angular.
Вы можете классифицировать свои массивы в разных служебных файлах и внедрять эти службы в свой контроллер, чтобы получить эти массивы, а затем управлять своими данными в файле контроллера. Вы также можете сохранить эти массивы в простых json файлах и сделать запрос HTTP-get, чтобы получить такие данные, как
$http.get('/path to your file')
.success(function(data){
//logic
})
.error(function(data){
//capture error
});