[英]AngularJS how to include array from other file?
我在控制器內部定義了一些相當大的二進制(200kb)數組。 現在,我想將這些大型數組放在單獨的文件中,並以某種方式包括它們或將其保存在控制器中。
是否有一種優雅的方法? 我可以將數組放在不同的服務中,然后從服務中獲取數組嗎?
您可以選擇提供程序配方之一,以將陣列注入控制器,服務或指令中。
https://docs.angularjs.org/guide/providers
不斷的配方將是一個好的開始
myApp.constant('bigArray', myArray);
只是為了詳細說明@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;
}]);
UPDATE
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
您可以將陣列分類到不同的服務文件中,然后將這些服務注入控制器中以獲得這些陣列,然后可以管理控制器文件中的數據。 您還可以將這些數組保存在簡單的json文件中,並發出http get請求以獲取諸如
$http.get('/path to your file')
.success(function(data){
//logic
})
.error(function(data){
//capture error
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.