2014-10-15 4 views
0

"단일 클라이언트"보기를 생성하려고합니다. 각 클라이언트에는 프리노 (성)와 성 (성)이 있습니다. 사실, 내 응용 프로그램은 클라이언트에 대해 두 가지 값이 있음을 알고있는 것 같지만이 값은 나타나지 않습니다 ..빈 배열에 Firebase의 데이터를 입력하십시오.

내 질문 : 왜 데이터가 나타나지 않습니다.

내가 URL의 LOCALHOST/#/고객을 위해 가지고 무엇을/-JYvLztvmRIcT8ITKWl1

업데이트 : http://plnkr.co/edit/0waQY6ny8TvgNZhz4DRW?p=preview

HTML 생성

<p>Client: {{client}}</p> 
<p>Clients: {{clients}}</p> 
<p>Client.prenom: {{client.prenom}}</p> 

: 여기에 라이브 코드를 볼 수 HTML (페이지를로드 할 때)

Client: [{},{}] 
Clients: 
Client.prenom: 

컨트롤러 (app.js 코드는)

app.config(['$routeProvider', 
    function($routeProvider) { 
    $routeProvider. 
     when('/', { 
     templateUrl: 'accueil.html' 
     }). 
     when('/clients', { 
     templateUrl: 'clients.html', 
     controller: 'ClientsCtrl' 
     }). 
     when('/clients/:clientId', { 
     templateUrl: 'client.html', 
     controller: 'ClientSoloCtrl' 
     }). 
     otherwise({ 
     redirectTo: '/' 
     }); 
    }]); 

app.controller('ClientSoloCtrl', ClientSoloCtrl); 
function ClientSoloCtrl ($scope, $firebase, $routeParams) { 

    var clientId = $routeParams.clientId; 
    var ref = new Firebase("https://crmfirebase.firebaseio.com/clients/"+clientId); 
    $scope.client = $firebase(ref).$asArray(); 

    $scope.removeClient = function(client) { 
    $scope.client.$remove(client); 
    }; 

    $scope.addClient = function (client) { 
    $scope.client.$add(client); 
    }; 

    $scope.updateClient = function (client) { 
    $scope.client.$save(client); 
    }; 

} 
+0

안녕 루시 : 마지막 줄은 당신이 당신의보기의 HTML에 무엇을 사용하는 이름 client에 의해 뷰에 사용할 수있는 (동기화) 클라이언트 개체를 만드는

var clientId = $routeParams.clientId; var ref = new Firebase("https://crmfirebase.firebaseio.com/clients/"+clientId); var client = $firebase(ref).$asObject(); client.$bindTo($scope, 'client'); 

. jsFiddle 또는 jsBin과 같은 사이트에서 문제의 재현을 설정할 수 있습니까? –

+0

@FrankvanPuffelen 예,이 작업을 수행하고 URL을 다시 게시하겠습니다. –

+0

@FrankvanPuffelen 여기에 http://plnkr.co/edit/0waQY6ny8TvgNZhz4DRW?p=preview –

답변

2

나는 당신의 Plunkr로 이동 클라이언트 목록이 제대로 웁니다. 그 부분은 ClientsCtrl에 의해 처리되고 내가 기대했던 방식대로 작동합니다.

클라이언트 중 하나를 클릭하면 탐색은 client.html 및 ClientSoloCtrl으로 이동합니다. 너는하고있다 :

var clientId = $routeParams.clientId; 
var ref = new Firebase("https://crmfirebase.firebaseio.com/clients/"+clientId); 
$scope.client = $firebase(ref).$asArray(); 

실수는 마지막 줄에있다. 하나의 객체를 배열이 아닌 $scope에 바인딩하려고합니다. 따라서 여기 $asArray 대신 $asObject을 사용해야합니다.

<form class="form-inline" ng-submit="updateClient(client)"> 
     <div class="form-group"> 
      <input type="text" class="form-control" placeholder="Prénom" ng-model="client.prenom" /> 
     </div> 
     <div class="form-group"> 
      <input class="form-control" type="text" placeholder="Nom de famille" ng-model="client.nom" /> 
     </div> 
     <button type="submit">Sauvegarder</button> 
    </form> 
+0

그것은 작동합니다, 고마워요! –

관련 문제