2017-02-03 89 views
0

我有一个Angulars范围的奇怪问题。我与它合作了一段时间,一切都很好,但在这个小小的片段中,$范围不会改变。任何想法? ($ scope.projects和$ scope.commentText,后成功返回的数据)HTM

型号:

<textarea ng-model="commentText" class="form-control" 
               placeholder="Enter your comment..." rows="3"></textarea> 
            <br> 
            <a href="#" class="btn btn-primary btn-sm pull-right" ng-click="postComment(projects[0]._id, commentText)">Post comment</a> 

控制器:

$scope.postComment = function (project_id, comment) { 
    console.log(project_id, comment); 
    if (comment && $scope.user) { 
     var body = { 
      project: project_id, 
      text: comment.replace(/\r?\n/g, '<br />'), 
      user: $scope.user.nickname, 
      date: new Date() 

     }; 
     $http.post('/api/projects/comment', body) 
      .success(function (data) { 
       data.comments.map(function (comment) { 
        comment.text = $sce.trustAsHtml(comment.text) 
       }); 
       $scope.projects[0] = data; 
       $scope.commentText = ""; 
      }) 
      .error(function (error) { 
       console.log('Error: ' + error); 

      }); 
    } 
+1

你能在小提琴中重现吗? –

+0

我不得不减少一点,但它在那里工作。 http://jsfiddle.net/ADukg/9756/ –

+0

代码是正确的只是检查你是否成功回调你在$ sce.trustAsHtml(comment.text)中做什么试图在$ sce依赖于控制器和它的包括图书馆至少没有看到小提琴? –

回答

0

我想通了。 一切工作正常......问题是我不能用commong $ scope.textarea =“”来更改textarea的内容。

我用$(“#text-area”)。val(“”)为此使用了jquery。

+1

这听起来不像是正确的方法。一般来说,jQuery不应该与Angular一起使用来完成Angular的任务。 –

+0

你是对的,但我发现它在一些其他问题上存在范围和textareas问题。任何想法如何使用角度做到这一点? –