gpt4 book ai didi

javascript - 如何将数组从服务函数传递到 Controller (AngularJs)中的范围?

转载 作者:行者123 更新时间:2023-11-30 07:08:21 24 4
gpt4 key购买 nike

我有一个如下所示的 Angular 服务:

    .service('shareDataService', function() {
var myXi = [];
var myYi = [];

var addXi = function(newObj) {
myXi = newObj;
}

var addYi = function(newObj) {
myYi = newObj;
}

var getPlot = function() {
var a = [];

for (var i = 0; i < myXi.length; i++) {
a.push([myXi[i], myYi[i]]);
}

return a;
}

return {
addXi: addXi,
addYi: addYi,
getPlot: getPlot
};
});

我有 Angular Controller :

    .controller('plotController', function($scope, shareDataService) {
$scope.getYo = function() {
return shareDataService.getPlot();
};
$scope.lineChartData = [
$scope.getYo()
];
});

我需要将一个值从 $scope.getYo 发送到 $scope.lineChartData(它将是一个数组)。我怎样才能做到这一点?我试过那样,但如果我在 HTML 中调用 $scope.lineChartData,我什么也得不到。我需要的数据是

    [
[
[2,0],
[3,1],
[5,4]
]
];

更新:

请参阅我在 http://laravel.io/bin/6LVej 中的完整解释.谢谢

最佳答案

众所周知,工厂和服务基本上用于共享数据。但两者有不同的用途和意义。基本区别是 Factory 应该总是返回 Object 而 Service 应该返回 Function(JS 中的构造函数)。以下是可能对您的情况有帮助的代码片段。

    var app = angular.module('plunker', []);

app.service('arrayService', function() {
return function() {
this.getArray = function() {
return [1, 2, 3, 4, 5];
}
}
})
app.factory('arrayFactory', function() {
return {
getArray : function() {
return [9,8,7,6,5];
}
}
})
app.controller('MainCtrl', ['$scope','arrayService','arrayFactory',
function($scope, arrayService,arrayFactory) {
var ary = new arrayService();
$scope.serviceArrayObject = ary.getArray();
$scope.factoryArrayObject = arrayFactory.getArray()

}
]);

Here is the plunker for basic difference 我们如何使用服务和工厂

关于javascript - 如何将数组从服务函数传递到 Controller (AngularJs)中的范围?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29763696/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com