2014-10-31 6 views
0

저는 건물에있는 응용 프로그램에 AngularJS를 사용하고 있으며 항목이 places이라는 JSON 객체로 푸시 될 때 페이지를 생성 할 수 있는지 궁금합니다. 푸시 된 각 항목에 고유 한 ID가 부여되어 있으므로 site.com/places/123456과 같은 URL의 일부로이 ID (예 : 123456)를 사용할 수 있다고 생각했습니다.JSON 데이터를 기반으로 페이지 생성

{ 
    "places" : [ 
    { 
     "id" : 471756, 
     "title" : "The Whittington Hospital" 
    } 
    ] 
} 

이 페이지를 자동으로 생성 할 수 있습니까 (예 : 템플릿 기반)?

사용자가 양식을 통해 자신의 병원을 만들도록하는 앱을 만들기 위해 노력 중이므로 물어 봅니다. 병원이 만들어져 JSON 객체에 푸시되고 나면 해당 병원에 대한 페이지를 만들고 싶습니다.

각도를 사용할 수 있습니까? 어떤 도움을 주셔서 감사합니다.

미리 감사드립니다.

UPDATE 여전히이 가진 문제의 비트를 갖는. 여기에 내가 지금까지 가지고있는 것이있다.

place.html

<div ng-controller='PlaceCtrl'> 
    <h1>{{ title }}</h1> 
</div> 

JS

app.constant('FBURL', 'https://luminous-fire-8685.firebaseio.com/'); 

app.config(['$routeProvider', function ($routeProvider) { 
    $routeProvider 
    .when('/places/:placeId', { 
     templateUrl: 'views/place.html', 
     controller: 'PlaceCtrl' 
    }) 
}]); 

app.factory('place', function($firebase, FBURL, $routeParams) { 
    var ref = new Firebase(FBURL + "places/" + $routeParams.placeId); 

    return { 
    id: $routeParams.placeId 
    } 
}); 

app.controller('PlaceCtrl', function($scope, $rootScope, FBURL, $firebase, $location, $routeParams, place) { 
    $scope.placeId = place.id; 
}); 
+0

예 ... 표준 템플릿을 만드시겠습니까? 보기에 데이터를 보내려면'{{}} '을 사용하십시오. – tymeJV

+0

@ tymeJV이 문제에 대한 설명서를 가르쳐 주시겠습니까? 또한 Angular 앱의 크기는 얼마입니까? 제한이 있습니까, 아니면 대신 Rails/PHP를 사용해야하는 곳이 있습니까? – realph

답변

2

당신은 ngRoute 및 $routeProvider 찾고 있습니다.

.when('/place/:placeId', { templateUrl: 'place.html', controller: 'PlaceCtrl' }) 

그래서 때마다 방문자가 PlaceCtrlplace.html에서 끝 /place/로 시작하는 URL을 명중 : 그와 함께이 같은 매개 변수화 된 경로를 설정할 수 있습니다. 그리고 장소 ID는 매개 변수로 전달됩니다.

그런 다음 컨트롤러에서 매개 변수를 선택할 수 있습니다 : 또한

app.controller('PlaceCtrl', function($scope, FBURL, $firebase, $routeParams) { 
    var ref = new Firebase(FBURL+"places/"+$routeParams.placeId); 

참조 : 나는 복사/붙여 넣기있는 https://github.com/puf/trenches/blob/master/app.js (: AngularJS와, 중포 기지 및 AngularFire를 사용

+0

이것은 많은 도움이됩니다. 답장을 늦게 보내서 미안해. 이걸 시험해보기 위해 잠수하려고합니다. – realph

+0

내 질문에 대한 업데이트를 추가했습니다. 샘플 애플 리케이션을 여기서 참조로 사용하고 있지만 관련 페이지에'{{title}} '을 표시 할 수 없습니다. 내가 뭘 잘못하고 있는거야? – realph

+0

'PlaceCtrl'은'placeId'를 범위에만 바인딩하기 때문에 뷰에 표시 할 범위에'title'이 없습니다. Chrome에서 Angular devtools를 사용하면 이러한 유형의 문제를 쉽게 디버깅 할 수 있습니다. –

관련 문제