2014-01-17 23 views
0

變量$scope.discussionId未顯示在我的模板中。每個其他值都顯示

我在做什麼錯?

EDIT(全碼)

控制器

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> 

MAIN(Grails的GSP)

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

器指令

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)'顯示值。這是成功的功能。所有其他值都正確顯示。 – Merlin