2012-11-03 74 views
6

我剛剛開始混淆角度js,我試圖通過後置操作加載數據。Angularjs TypeError:undefined不是函數

我使用angularjs v.1.0.2

這裏是我的代碼: HTML:

<!DOCTYPE html> 
<html ng-app> 
    <head> 
     <meta charset="utf-8"> 
     <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> 
     <title></title> 
     <meta name="description" content=""> 
     <meta name="viewport" content="width=device-width"> 

     <script src="//ajax.googleapis.com/ajax/libs/angularjs/1.0.2/angular.min.js"></script> 
     <script src="<?php echo $baseUrl?>/js/profilling/main.js"></script> 
    </head> 
    <body> 
     <div ng-controller="GroupsCtrl"> 

     </div> 
    </body> 
</html> 

main.js:

function GroupsCtrl($scope, $http) { 
    $scope.url = '/file.php'; 
    $scope.images = []; 

    function handleGroupsLoaded(data, status) { 
     console.log(data); 
    } 

    $scope.fetch = function() { 
     $http.post($scope.url).success($scope.handleGroupsLoaded); 
    } 

    $scope.fetch(); 
} 

我正在努力跟隨這jsfiddle:http://jsfiddle.net/simpulton/wHL3F/

但我收到以下錯誤:

TypeError: undefined is not a function at http://ajax.googleapis.com/ajax/libs/angularjs/1.0.2/angular.min.js:92:92 at i (http://ajax.googleapis.com/ajax/libs/angularjs/1.0.2/angular.min.js:76:119) at http://ajax.googleapis.com/ajax/libs/angularjs/1.0.2/angular.min.js:76:352 at Object.e.$eval (http://ajax.googleapis.com/ajax/libs/angularjs/1.0.2/angular.min.js:86:220) at Object.e.$digest (http://ajax.googleapis.com/ajax/libs/angularjs/1.0.2/angular.min.js:84:198) at Object.e.$apply (http://ajax.googleapis.com/ajax/libs/angularjs/1.0.2/angular.min.js:86:379) at e (http://ajax.googleapis.com/ajax/libs/angularjs/1.0.2/angular.min.js:92:330) at o (http://ajax.googleapis.com/ajax/libs/angularjs/1.0.2/angular.min.js:95:407) at XMLHttpRequest.q.onreadystatechange (http://ajax.googleapis.com/ajax/libs/angularjs/1.0.2/angular.min.js:96:334)

任何人都可以幫忙嗎?

感謝

編輯 file.php:

echo '{"menu": { 
    "id": "file", 
    "value": "File", 
    "popup": { 
    "menuitem": [ 
     {"value": "New", "onclick": "CreateNewDoc()"}, 
     {"value": "Open", "onclick": "OpenDoc()"}, 
     {"value": "Close", "onclick": "CloseDoc()"} 
    ] 
    } 
}} 
'; 

這似乎是一個有效的JSON對象。

+1

註冊handleGroupsLoaded()也許你只需要聲明'函數handleGroupsLoaded(數據,狀態)''爲$ scope.handleGroupsLoaded =功能(數據,狀態){。 ..}' – Justen

+0

現在我覺得愚蠢:)謝謝!像魅力一樣工作! – jribeiro

回答

6

你只需要在$scope

function GroupsCtrl($scope, $http) { 
    $scope.url = '/file.php'; 
    $scope.images = []; 

    $scope.handleGroupsLoaded = function(data, status) { 
     console.log(data); 
    } 

    $scope.fetch = function() { 
     $http.post($scope.url).success($scope.handleGroupsLoaded); 
    } 

    $scope.fetch(); 
} 
相關問題