1
我剛試圖在Angular JS中創建一個服務,它成功地調用函數$ http.get並返回值。但是該值不會插入到範圍變量中。 問題:什麼是錯的?在Angular JS中使用服務無法返回範圍值
angular.module('starter.controllers', [])
.factory('UserService', function($http) {
var data;
return{
getData: function($http) {
return $http.get('http://www.website.com/call12').
success(function(response) {
/// console.log(JSON.stringify(response));
userData=response.data;
return userData;
}).error(function(data, status, headers, config) {
// log error
});
}
}
})
.controller('AppCtrl', function($scope, $ionicModal, $interval,$http,$rootScope,UserService) {
$scope.formData={};
$scope.userData={};
$scope.myCtrl= function(UserService,$http,$rootScope) {
UserService.getData($http).then(function(data,$rootScope) {
$scope.userData = data;
$scope.fullName = data.name;
$scope.balance = data.balance;
}}
$scope.formData.playerName= $scope.userData.name; // $scope.userData is undefined
$scope.myCtrl(UserService,$http);
})
模板
<form ng-submit="submit_editpw()" ng-controller="AppCtrl">
<pre>userData : {{userData}}</pre> //retuns data
<pre>name: {{fullName}}</pre> //returns empty
</form>
嗨。我得到錯誤。 類型錯誤:UserService.getData(...)是未定義 腳本: 'UserService.getData(),然後(函數(數據){$ = scope.userData數據; });' – xyonme
確保'getData'返回promise:返回'$ http.get(...)'。 – dfsq
嗨@dfsq我得到問題,當我嘗試獲取服務變量值。你可以幫我嗎? 例如 '$ scope.fullName = data.name; ''// fullName仍爲空' 函數外 '$ scope.formData.playerName = $ scope.userData.name; '// $ scope.userData is undefined' – xyonme