你好我对角度很新。 我希望你能帮助我。
我正在使用angular,PHP和MySQL创建一个库存管理器。在某些时候,我需要查阅数据库表中的所有元素。我想使用angular。将这些结果直接绑定到浏览器视图。
要做到这一点,我会触发一个角度函数,该函数要求PHP隐藏文件在关联数组中从MySQL中检索结果。
这是我的index.php。
<a ng-click='shw("material")' href=''>Materiales</a>
这是我的角度函数
$scope.shw = function(pointer){
$.post(
'phpdep/arequest.php',
{
varPage:pointer,
show:"show"
},
function(data){
$('#ajaxreq').html(data);
}
);
}
在我的arequest.php中我有
if($_POST['show']=='show'){
$result = material::selectMaterial($_POST['varPage'],"n");
$result = json_encode($result);?>
<script type='text/javascript'>
angular.element($('#cont')).scope().fillerq('<? echo $_POST['varPage']?>',<? echo $result?>);
</script>
我必须说我知道在php文件中间插入一个脚本不是最好的做法,但现在这对我有用(如果你有任何建议我会很高兴得到它)。
$ result是一个关联数组,其中包含我想要检索的所有数据。
然后我有这个fillerq()角度函数,它用JSONED对象填充角度对象(填充符),该对象带有来自我的数据库的数据。
$scope.filler = {};
$scope.ftittle = {};
$scope.fillerq = function(keyword, dataArray){
var i=0;
$scope.filler = dataArray;
angular.forEach(dataArray, function(value, key){
angular.forEach(value, function(nval, nkey){
$scope.ftittle[nkey] = nkey;
});
});
};
此时一切正常。问题是当我尝试通过ng-repeat显示这个填充对象时。当我在第二次点击时点击“Materiales”链接时显示它。
<table class="displayElements">
<tr>
<td ng-repeat="key in notSorted(ftittle)">{{ftittle[key]}}</td><tr>
<tr ng-repeat="val in filler">
<td ng-repeat="key in notSorted(val)" ng-show="!$last">{{val[key]}}</span>
</td></tr>
我想让它在第一次点击时显示,而不是在第二次点击时显示。