簡體   English   中英

AngularJS如何包含其他文件中的數組?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM