Javascript 用于填充下拉列表的Angular js数据服务
我创建了一个服务来从数据库中获取数据。该服务不填充下拉列表 响应数据中的值是:[{“ID”:1,“Name”:“Name1”},{“ID”:2,“Name”:“Name2”}] html 服务:Javascript 用于填充下拉列表的Angular js数据服务,javascript,angularjs,Javascript,Angularjs,我创建了一个服务来从数据库中获取数据。该服务不填充下拉列表 响应数据中的值是:[{“ID”:1,“Name”:“Name1”},{“ID”:2,“Name”:“Name2”}] html 服务: MyApp.factory('getTopicsService', function ($http) { return { getTopics: function (baseUrl) { return $http.post(baseUrl
MyApp.factory('getTopicsService', function ($http) {
return {
getTopics: function (baseUrl)
{
return $http.post(baseUrl + 'Admin/getTopics').then(function (response) {
return $.parseJSON(response.data);
});
}
}
});
MyApp.factory('getTopicsService', function ($http) {
return {
getTopics: function (baseUrl)
{
return $http.post(baseUrl + 'Admin/getTopics');
}
}
});
嗯,试着改变一下你的承诺 服务:
MyApp.factory('getTopicsService', function ($http) {
return {
getTopics: function (baseUrl)
{
return $http.post(baseUrl + 'Admin/getTopics').then(function (response) {
return $.parseJSON(response.data);
});
}
}
});
MyApp.factory('getTopicsService', function ($http) {
return {
getTopics: function (baseUrl)
{
return $http.post(baseUrl + 'Admin/getTopics');
}
}
});
控制器:
getTopicsService.getTopics(baseUrl).then(function(response) {
$scope.topics = $.parseJSON(response.data);
});
现在调试这个问题就容易多了。
如果仍不工作:
getTopics
返回$http调用本身。您的服务函数在承诺本身得到解决之前返回。因此,您将$http
请求对象本身绑定到范围变量上,而不是请求的响应上
通过向http请求回调中的范围变量添加
response.data
,您可以确保在返回承诺后设置范围变量。您需要像这样为范围变量赋值
getTopicsService.getTopics(baseUrl).then(function(resp){ $scope.topics = resp.data; });
$scope.topics,它的价值是什么?使用console.log($scope.topics)检查scope是否有值?您是否尝试过答案中的解决方案?你的解决方案应该有效。你能解释一下为什么我不能在服务中解析JSON吗