我有一个基本数据服务,它将用于多个控制器。在服务中,我有一些预定义的字段,我将通过$ http获得。
在获取$ http响应后,我目前无法更新该变量 - 我不断收到错误dropdownData is not defined
。我知道这可能是非常基本的,所以请告诉我。
服务:
angular.module('core').service('FormService', ['$http', function($http) {
this.dropdownData = {
contactTimes: ['Anytime','Morning','Afternoon','Evening'],
industries: {},
};
$http.get('/json').success(function(resp){
dropdownData.industries = resp.industries;
});
}]);
答案 0 :(得分:0)
捕获对this
的引用并在回调中使用它
angular.module('core').service('FormService', ['$http', function($http) {
var service = this;
this.dropdownData = {
contactTimes: ['Anytime','Morning','Afternoon','Evening'],
industries: {},
};
$http.get('/json').success(function(resp){
service.dropdownData.industries = resp.industries;
});
}]);
答案 1 :(得分:0)
尝试在变量中定义:
angular.module('core').service('FormService', ['$http', function($http) {
var $this = this;
$this.dropdownData = {
contactTimes: ['Anytime','Morning','Afternoon','Evening'],
industries: {},
};
$http.get('/json').success(function(resp){
$this.dropdownData.industries = resp.industries;
});
}]);
根据函数调用上下文重新定义。通过将 this 存储在变量中,您可以在闭包中重复使用它。
答案 2 :(得分:0)
也许使用var可以解决你的问题
var dropdownData = {
contactTimes: ['Anytime','Morning','Afternoon','Evening'],
industries: {},
};