2016-12-15 53 views
2

我想進行簡單的字符串的WebAPI獲得通過angularjs成功是不是一個函數angularjs

我不知道是什麼問題

有沒有什麼更好的方法,從得到的WebAPI簡單的字符串的要求嗎?

此錯誤

angular.min.js:2TypeError: currentYear.thisYear(...).success is not a function 

網頁API

// GET: api/values 
    [HttpGet] 
    public string Get() 
    { 
     string time = DateTime.Now.Year.ToString(); 
     return time; 
    } 

服務:

(function() { 
'use strict'; 

var timeService = angular.module('timeService', ['ngResource']); 

timeService.factory('currentYear', ['$http', function ($http) { 
    return { 
     thisYear: function() { 
      return $http.get('/api/year/'); 
     } 
    }; 
}]); 
})(); 

控制器

(function() { 
'use strict'; 

angular.module('saniehha').controller('currentYearController', currentYearController); 

currentYearController.$inject = ['$scope','currentYear']; 

function currentYearController($scope, currentYear) { 
    var value = currentYear.thisYear().success(function (data) { 
     alert(data); 
    }); 
$scope.currentYear = value; 
} 
})(); 
+0

與酪氨酸。然後,而不是成功 –

+0

邊注:一般情況下,我會避免調用包含一個承諾'value'的變量。這是誤導。 –

+0

@ T.J.Crowder你的意思是我使用retValue而不是價值? –

回答

1

從Angular 1.6開始,將從API中刪除.success.error回調函數。 They were deprecated至少1.4。

您應該使用.then而不是.success,作爲$http方法返回一個promise對象:

var value= currentYear.thisYear().then(function (data) { 
    $scope.currentYear = data.data; 
}); 

你可以進一步用它來鏈了。

$http's deprecated custom callback methods - success() and error() Changelog

+0

數據是對象而不是字符串。但如果執行$ scope.currentYear = value,則data.data是字符串 –

+0

;沒有觸發! –

+0

@cinoheeenayati你是什麼意思? –