Javascript 角度$scope未在函数中更新
我对安格拉斯望远镜有个奇怪的问题。我用了一段时间,一切都很好,但在这个小片段中,$scope不会改变。有什么想法吗? ($scope.projects和$scope.commentText,post将成功返回数据) HTM中的模型:Javascript 角度$scope未在函数中更新,javascript,angularjs,Javascript,Angularjs,我对安格拉斯望远镜有个奇怪的问题。我用了一段时间,一切都很好,但在这个小片段中,$scope不会改变。有什么想法吗? ($scope.projects和$scope.commentText,post将成功返回数据) HTM中的模型: <textarea ng-model="commentText" class="form-control" placeholder="Enter your comme
<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);
});
}
$scope.postComment=函数(项目id,注释){
日志(项目id、注释);
if(注释&&$scope.user){
变量体={
项目:项目编号:,
文本:comment.replace(/\r?\n/g,
),
用户:$scope.user.昵称,
日期:新日期()
};
$http.post('/api/projects/comment',body)
.成功(功能(数据){
data.comments.map(函数(comment){
comment.text=$sce.trustAsHtml(comment.text)
});
$scope.projects[0]=数据;
$scope.commentText=“”;
})
.错误(函数(错误){
console.log('错误:'+错误);
});
}
我想出来了。
一切正常…问题是我不能用commong$scope.textarea=”“更改textarea的内容
为此,我使用jquery和$(“#text area”).val(”)。你能用小提琴复制它吗?我不得不减少一点,但它在那里工作。代码是正确的,只需检查你是否成功获得回调。你在$sce.trustAsHtml(comment.text)中尝试做什么控制器中的$sce依赖项及其包含的库至少在fiddle中看不到吗?我得到一个成功的回调,控制台日志也在工作。我只是无法再访问$scope.commentText。如果我在控制台中记录它,它总是空的。就在函数开始工作之前。顺便说一句,$sce将转义字符串,因为应该添加HTML$sce在controller dependency和santize library中,必须已加载请参见您的控制台,您可能会遇到一些错误。这听起来不是正确的方法。一般来说,jQuery不应该与Angular一起使用来执行Angular的任务。您是对的,但我在其他一些问题上发现范围和文本区域存在问题。您知道吗关于如何用角型来实现这一点?