簡體   English   中英

AngularJS:fn不是函數

[英]AngularJS: fn is not a function

調用函數results我有一個錯誤: TypeError: fn is not a function 在調用之前,一切正常,首先$http.get獲得良好的數據。 任何想法如何解決它?

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;
    })}    
  }

}])

編輯:我的觀點是從第一個$http.get獲取結果,然后在調用函數后覆蓋這些數據。 此外,我需要在第二個$http.get調用(在函數中)傳遞一個字符串參數來傳遞city參數,然后在request接收它(來自Django端)。

$http.get('/cowork/desks')獲取響應ajax后,您的$scope.results方法被數據覆蓋

因此,當您調用$scope.results時,它將拋出,因為$scope.results在控制器范圍上下文中不再可用。

TypeError:fn不是函數

修復將需要重命名的結果$http.get別的東西一樣$scope.result將被罰款。

$http.get('/cowork/desks').success(function(data, status, headers, config) {
    $scope.result = data;
})

您將結果用作案例1中的var,並將案例2中的函數用作函數。

Case1: return $scope.results = data;

Case2: $scope.results = function(search) {

使用適當的名稱。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM