我目前正在嘗試做類似於facebook post/likes/comment system,到目前爲止我已經設法做帖子和喜歡,但我有問題的意見。AngularJS問題與ng重複和保存輸入
這是控制器代碼和html顯示的東西。問題是,當我試圖從ng-model =「texto」獲得第二個textarea的輸入時,它應該保存註釋並保存在範圍內,但似乎不起作用。當談到角度和ng-repeat的工作方式時,我仍然是新手。
此外,它正在向數據庫,idPost和用戶ID發送信息,但文本是空白的。
編輯我刪除了HTTP後部分和所有的數據庫請求都在AJAX使用計時器完成。發送到數據庫的評論問題仍然存在。
<script>
var app = angular.module('postsApp', []);
var interval;
app.controller('postsCtrl', function($scope) {
$scope.toggle = false;
$scope.texto = [];
$scope.status = "";
$scope.comment = [];
$scope.comment = "";
$scope.posts = "";
$scope.texto = "";
$scope.idPost = 0;
$scope.showBox = function(p){
p.toggle = !p.toggle;
if(interval == 0){
interval = setInterval("angular.element($('#postsApp')).scope().servicoLeituraPosts()",1000);
}else{
clearInterval(interval);
interval = 0;
}
};
$scope.iniciaTimer = function(){
interval = setInterval("angular.element($('#postsApp')).scope().servicoLeituraPosts()",1000);
};
$scope.servicoLeituraPosts = function(){
$.getJSON(
"servicoLeituraPosts.php",
{
},
function(jsonData)
{
$scope.posts = jsonData;
$scope.$apply();
});
};
$scope.addPost = function(){
$.post(
"addPostRest.php",
{
"texto" : $scope.texto
},
function(dados)
{
$scope.texto = dados.indexOf("OK") >= 0 ? "" : "FALHOU";
$scope.$apply();
}
);
};
$scope.addLike = function(idPost)
{
$.post(
"addLike.php",
{
"idPost" : $scope.idPost = idPost
},
function(dados)
{
$scope.texto = dados.indexOf("OK") >= 0 ? "" : "FALHOU"
$scope.$apply();
}
);
};
$scope.addComment = function(idPost){
$.post(
"addComentarioRest.php",
{
"comment" : $scope.comment,
"idPost" : $scope.idPost = idPost
},
function(dados)
{
$scope.texto = dados.indexOf("OK") >= 0 ? "" : "FALHOU"
$scope.$apply();
}
);
};
});
</script>
HTML
<div id="postsApp" class="container" ng-app="postsApp" ng-controller="postsCtrl" ng-init="iniciaTimer()">
<div class="panel panel-default">
<div class="panel-heading">
POSTS
<a class="btn btn-success pull-right" href="posts.php"><span class="glyphicon glyphicon-refresh"/></a>
</div>
<div class="panel-body">
<div class="form-group">
<label for="texto">Texto::</label>
<textarea ng-model="texto" placeholder="Coloque aqui a mensagem..." class="form-control" class="form-control" rows="5" name="texto"></textarea>
</div>
<button ng-click="addPost()" class="btn btn-success btn-xs" type="button">Enviar</button>
</div>
</div>
<div class="posts" id="posts">
<div class='row ng-scope' ng-repeat="p in posts" >
<div class='col-md-12'>
{{ p.nome }} - {{ p.data }} <p><p>
{{ p.texto }} <p><p>
{{ p.numeroLikes }}
<button ng-click="addLike(p.idPost)" class="btn btn-default btn-xs" type="button">Like</button>
<span class="abrir_comentario" ng-click="showBox(p)">Comentários</span>
<div ng-show="p.toggle" id="comentarios">
<div class="comentarios">
<textarea ng-model="comment" placeholder="Coloque aqui a mensagem..." class="form-control" class="form-control" rows="3" name="comment"></textarea>
<p><p><p><button ng-click="addComment(p.idPost)" class="btn btn-success btn-xs" type="button">Enviar</button>
</div>
</div> <p>
</div>
</div>
</div>
嗨感謝您的回覆,我不得不修改我的代碼因爲我必須使用AJAX,所以我刪除了HTTP部分並創建了一個計時器。至於調試器,我似乎無法讓它在netbeans – ruipascoal
上工作,當您發送請求時,您可以在開發人員工具中檢查網絡選項卡以查看是否發送了任何參數? – mygeea
我很抱歉,我在哪裏可以找到這些開發者工具?我的IDE是用葡萄牙語,所以它可能不同 – ruipascoal