2014-01-17 12 views
0

변수 $scope.discussionId이 내 템플릿에 표시되지 않습니다. 다른 모든 값이 표시됩니다

내가 뭘 잘못하고 있니?

EDIT (전체 코드)

CONTROLLER

soundshareApp.controller('CommentController', function($scope, $http) { 

    $scope.data = { comments : [] } 
    $scope.state = {} 
    $scope.project = { id : [] } 
    $scope.discussionId; 
    $scope.test = "Hello World !"; 


    $scope.loadComments = function(userName, urlName){ 
     $http({ 
      url: '/comment/by_project_id', 
      method: "GET", 
      params: 
      { 
       username: userName, 
       urlname: urlName 
      } 
     }).success(function(data) { 
      $scope.discussionId = data[0].discussionId; 
      console.log("discussionId " + $scope.discussionId);//display the value !! 
      $scope.data.comments = data; 
     });; 
    } 
} 

템플릿

<div ng-controller="CommentController" > 
    <div class='message-content' ng-click="state.show = !state.show"> 
     <img class='message-vignette' ng-src='{{commentData.avatarUrl}}'/> 
     <div class='message-username'>{{commentData.username}}</div> 
     <div class='project-message'> {{commentData.comment}}</div> 
     <div class='message-date'>{{commentData.dateCreated | date:'MM/dd/yyyy @ h:mma' }}</div> 
    </div> 

    <div class="answer-message-content show-hide" ng-show="state.show" > 
     <img class='message-vignette answer-message-vignette' ng-src='{{commentData.currentUserAvatarUrl}}'> 
     <div class="add-comment-content"> 
      <form ng-submit="addComment(commentData)" id="commentForm-{{commentData.projectId}}"> 
       <input id="input-comment-{{commentData.projectId}}" type="text" maxlength="255" name="comment" placeholder="Write a comment..." ng-model="commentData.msg"> 
       <input type="hidden" name="discussionId" value="{{commentData.discussionId}}" > 
       <input type="hidden" name="projectId" value="{{commentData.projectId}}" > 
      </form> 
     </div> 
    </div> 
    test : {{test}}// showing "Hello World!" 
    discussionId: {{discussionId}}//not showing !! 
    <div ng-repeat="answer in answers" class="answer-message-content"> 
     <div class='message-content' ng-click="state.show = !state.show"> 
      <img class='message-vignette' ng-src='{{answer.avatarUrl}}'/> 
      <div class='message-username'>{{answer.username}}</div> 
      <div class='project-message'> {{answer.comment}}</div> 
      <div class='message-date'>{{answer.dateCreated | date:'MM/dd/yyyy @ h:mma' }}</div> 
     </div> 
    </div> 
</div> 

홈페이지 (Grails의 GSP)

<div ng-init="loadComments('${params.username}', '${params.urlname}')"> 
    <div ng-repeat="pdata in data.comments" > 
     <div sdcomment param="pdata"></div> 
    </div> 
</div> 

DIRECTIVES

soundshareApp.directive('sdcomment', function(){ 
    return { 
     restrict:'A', 
     scope: { 
      commentData: '=param' 
     }, 
     templateUrl: '/js/views/comment/templates/commentList.html', 

     link : function(scope, elem, attrs) { 

     } 
    } 

}); 

+0

$ scope.loadComments를 호출 했습니까? –

+0

전체 템플릿 코드를 표시 할 수 있습니까? –

+0

예! 모든 데이터는'discussionId'를 제외하고 표시됩니다 – Merlin

답변

1

내가 $scope.loadComments 이제까지 호출되는 표시되지 않습니다 감사합니다. $scope.discussionId;은 초기화되지 않았습니다. 초기화하면 그 값을 표시 할 것입니다.

$scope.discussionId = 10; 
+0

loadComments가 다른 페이지에서 호출되면 지시문을 사용하여 내 템플릿을 표시하십시오. – Merlin

+0

내 질문의 너비 전체 코드를 업데이트했습니다 – Merlin

+0

나는'console.log ($ scope.discussionId)'가 값을 표시한다고 말했습니다. 그리고 그것은'success' 함수에 있습니다. 다른 모든 값이 올바르게 표시됩니다. – Merlin

관련 문제