2014-07-23 2 views
0

JSON 개체를 사용하여 HTML 테이블에서 인쇄하는 간단한 AngularJS 코드를 만들려고합니다. 나는이 바이올린의 코드를 사용하고AnjularJS, 올바른 참조 있지만 "ReferenceError : 각도가 정의되지 않았습니다"

는 (여기서 완벽하게 작품이다) : http://jsfiddle.net/mjaric/pJ5BR/

하지만 오류로 실행하지 않고, 하나의 HTML 파일 (로컬)에서 코드를 다시 드릴 수 없습니다.

편집 :

ReferenceError: angular is not defined

오류 (스크립트) 라인에가 :

var app = angular.module('myApp', []);

은 또한 로컬 AngularJS와와 JQuery와 Google을 통해 등을 참조했습니다. 전혀 차이가 없다.

여기 내 html 파일의 머리 :

<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.2.19/angular.min.js"></script> 
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
<link rel="stylesheet" href="http://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css"> 
<link rel="stylesheet" href="http://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap-theme.min.css"> 
<script src="http://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/js/bootstrap.min.js"></script> 

스크립트 세그먼트 :

<script> 

var mockDataForThisTest = "json=" + encodeURI(JSON.stringify([ 
    { 
    id: 1, 
    firstName: "Peter", 
    lastName: "Jhons"}, 
{ 
    id: 2, 
    firstName: "David", 
    lastName: "Bowie"} 
])); 


var app = angular.module('myApp', []); 

function PeopleCtrl($scope, $http) { 

    $scope.people = []; 

    $scope.loadPeople = function() { 
     var httpRequest = $http({ 
      method: 'POST', 
      url: '/echo/json/', 
      data: mockDataForThisTest 

     }).success(function(data, status) { 
      $scope.people = data; 
     }); 

    }; 

} 

</script> 

그리고 마지막으로 몸 :

<div ng-app="myApp"> 
     <div ng-controller="PeopleCtrl"> 
      <p> Click <a ng-click="loadPeople()">here</a> to load data.</p> 
     <table> 
      <tr> 
       <th>Id</th> 
       <th>First Name</th> 
       <th>Last Name</th> 
      </tr> 
      <tr ng-repeat="person in people"> 
       <td>{{person.id}}</td> 
       <td>{{person.firstName}}</td> 
       <td>{{person.lastName}}</td> 
      </tr> 
     </table> 
     </div> 
    </div> 

감사합니다!

+0

' '/ echo/json /''은 jsfiddle에만 국한되어 있습니다. 로컬 시스템에서 데이터를 반환 할 수있는 URL로 변경해야합니다. –

+0

내 시스템에서 어떤 종류의 URL이 작동합니까? 예를 들어 주시겠습니까? 감사. –

+0

'.json' 확장자를 가진 JSON 데이터를 포함하는 텍스트 파일을 사용할 수 있습니다.이 파일은 file : /// C :/xampp/htdocs/dummy-data.json' 또는 파일 위치가 무엇이든간에 참조 할 수 있습니다. 그러나 나는 Chrome이 이것에 대해 우스울 수 있다는 것을 안다. http://stackoverflow.com/questions/24889326/extjs-ajax-xmlhttprequest-cannot-load –

답변

3

당신은 각도에 참조를 위해 계획 상대 URL을 사용하고 있습니다 : 당신이 사용하여 HTML 문서를로드 할 경우 HTML 문서에 액세스하는 데 사용하고 완벽하게 작동하므로

src="//ajax.googleapis.com/ajax/libs/angularjs/1.2.19/angular.min.js" 

이 같은 방식을 사용 http:// 또는 https://. 대신 (http://localhost/와) 로컬 웹 사이트 및 자원의

지역 파일은, 아마도, (A file:// URI와) 파일 시스템에서로드되는이 file://ajax.googleapis.com/ajax/libs/angularjs/1.2.19/angular.min.js에서 사용할 수 없습니다.

빠르게

src="http://ajax.googleapis.com/ajax/libs/angularjs/1.2.19/angular.min.js" 

를 사용하여이 작업을 해킹 할 수 그러나 사이에 다르게 작동 (특히 사용중인 아약스, 주위에) 많은 물건이 있기 때문에 당신은 테스트를 위해 로컬 웹 서버를 사용하여 더 나을 것 file://http://.

+0

고마워! 그러나 편집하면 오류가 발생합니다 : [예외 ... "제한된 URI에 대한 액세스가 거부되었습니다"코드 : "1012"nsresult : "0x805303f4 (NS_ERROR_DOM_BAD_URI)"위치 : ""] ... a)} : function : function (a, b) {e (a, null == b?("정보"), 경고 : e ("... 로컬 위치를 사용하더라도 변경되지 않습니다." JS 파일 참조. –

+0

@oohman - 다음 문제를 겪은 것처럼 보입니다. 답의 마지막 단락에서 언급 한 '파일'과 'http'의 차이점 중 하나입니다. 로컬 웹 서버를 사용하십시오. 개발 및 테스트 – Quentin

+0

온라인 HTML 편집기를 사용하여 코드 (http://htmledit.squarefree.com/)를 실행했지만 콘솔에서 다음 오류가 계속 발생했습니다. ---- POST http : //htmledit.squarefree .com/echo/json/ 404 찾을 수 없음 ----- 문제가 http 범위와 관련이 있으면 정상적으로 작동해야합니다. –

관련 문제