AngularJS: le fn n'est pas une fonction
Après l'appel d'une fonction results
j'ai une erreur: TypeError: fn is not a function
. Avant de l'appeler, tout fonctionne bien, d'abord $http.get
obtient de bonnes données. Toutes les idées sur la façon de résoudre ce problème?
var app = angular.module("cowork", []);
app.config(function($interpolateProvider) {
$interpolateProvider.startSymbol('{[{');
$interpolateProvider.endSymbol('}]}');
});
app.controller("SearchDeskCtrl", ['$scope', '$http', function ($scope, $http) {
$scope.search = false;
$scope.city;
$http.get('/cowork/desks').success(function(data, status, headers, config) {
return $scope.results = data;
})
$scope.results = function(search) {
if (search){
$http.get('/cowork/desks_city', {city: $scope.city}).success(function(data, status, headers, config) {
search=false;
return data;
})}
}
}])
EDIT:
Mon point de vue dans toute la chose est de prendre les résultats de la première $http.get
et puis, après l'appel de la fonction, remplacer ces données. De plus, j'ai besoin de passer un paramètre de chaîne en deuxième $http.get
appel (en fonction) pour passer city
paramètre et de le recevoir dans request
(à partir de Django côté).
$scope.results = data
voyez-vous le problème? Vous réaffectez results
à autre chose.d'où appelez-vous les résultats de la fonction?
$http.get
2ème paramètre contient le paramètre de configuration, pas de données comme vous avez passé ici $http.get('/cowork/desks_city', {city: $scope.city})
OriginalL'auteur mefe | 2015-05-02
Vous devez vous connecter pour publier un commentaire.
Après l'obtention d'une réponse de
$http.get('/cowork/desks')
ajax votre$scope.results
méthode est d'obtenir remplacées avec des donnéesAinsi, alors que vous appelez
$scope.results
méthode de il va le jeter parce que$scope.results
n'est plus disponible dans le contrôleur de portée contexte.Correctif serait vous devez renommer les résultats de
$http.get
à autre chose comme$scope.result
sera fine.Code
results
de données? Parce que c'était mon point.il y a des choses que j'ai déjà expliqué dans la réponse, vous devez renommer
$scope.results
à$scope.result
OriginalL'auteur Pankaj Parkar
Vous êtes en utilisant les résultats de la var dans le cas 1 et une fonction dans le cas 2.
Utiliser des noms appropriés.
OriginalL'auteur vinayakj