我似乎无法弄清楚如何将数组从服务传递到控制器。
我有一个简单的服务
.service('test', function() {
var array = []
return array;
})
按下按钮时调用此功能的控制器
$scope.testArray = function() {
$scope.test = test.array;
console.log("test: ", $scope.test);
};
我得到错误测试未定义。任何人都可以向我解释为什么这不起作用以及如何解决它?我尝试将该数组存储在一个单独的对象中,但也没有运气。感谢
答案 0 :(得分:2)
(另见:this SO question about Angular providers)
service
应将属性直接放在this
上。而不是
.service('test', function() {
var array = [];
return array;
})
试
.service('test', function() {
this.array = [];
})
(尽管代码风格;许多人建议更喜欢直接对象访问的功能访问)
.service('test', function() {
var array = [];
this.getArray = function(){
return array;
};
})
答案 1 :(得分:1)
只需使用test.array
更改test
:
.controller('youCtrl', ['$scope', 'test', function ($scope, test) {
$scope.testArray = function() {
$scope.test = test;
console.log("test: ", $scope.test);
};
});
答案 2 :(得分:0)
将C:\xampp\sendmail.ini :
smtp_server=localhost
smtp_port=465
smtp_ssl=tls
error_logfile=error.log
auth_username=munish259272@gmail.com
auth_password=XXXXXXXXXXXXXXX
force_sender=munish259272@gmail.com
c:\xampp\php.ini
[mail function]
SMTP = localhost
smtp_port = 25
sendmail_from = postmaster@localhost
;sendmail_path = "\"C:\xampp\sendmail\sendmail.exe\" -t"
变量添加到array
。
service
将angular.module('moduleName').service('test', function() {
this.array = [];
});
注入service
。
controller