gpt4 book ai didi

javascript - 带有 ng-repeat 的空表行,AngularJS

转载 作者:行者123 更新时间:2023-12-03 12:13:59 24 4
gpt4 key购买 nike

我有您可以提交的输入字段,您输入的数据将插入到数据库中。然后使用 ng-repeat 将这些数据循环到表中:

    <table class="table table-striped table-condensed">
<thead>
<tr>
<th>Sträcka</th>
<th>Tid</th>
<th>Jämför</th>
</tr>
</thead>
<tr ng-repeat="info in test"><td>{{info.stracka}}</td><td>{{info.tid}}</td><td><input type="checkbox" id="{{info.id}}" class="checkboxfisk" ng-click="testa(info.id)"></tr>
</table>

问题是,当数据库表为空,并且您第一次提交数据时,在您点击提交后,会打印出 3 个空的 TR 行。我使用 firebug 来调试它,当我将鼠标悬停在空的 TR 行上时,HTML 看起来像这样:

<table class="table table-striped table-condensed">
<thead>
<tr>
<th>Sträcka</th>
<th>Tid</th>
<th>Jämför</th>
</tr>
</thead>
<tbody>
<tr class="ng-scope" ng-repeat="info in test">
<td class="ng-binding"></td>
<td class="ng-binding"></td>
<td>
<input id="" class="checkboxfisk" type="checkbox" ng-click="testa(info.id)">
</td>
</tr>
<tr class="ng-scope" ng-repeat="info in test">
<td class="ng-binding"></td>
<td class="ng-binding"></td>
<td>
</tr>
<tr class="ng-scope" ng-repeat="info in test">
<td class="ng-binding"></td>
<td class="ng-binding"></td>
<td>
</tr>
</tbody>
</table>
<form class="ng-pristine ng-invalid ng-invalid-required" novalidate="" ng-submit="submitForm(userForm.$valid)" name="userForm">

正如你所看到的,有一些 td 的类名为 ng-binding。这是什么?谁能帮我吗?

这是我的 Controller :

as.controller('Test', function($scope, $http, $rootScope, testFactory)
{
$http.get($rootScope.appUrl + '/nao/test/test')
.success(function(data, status, headers, config) {
$scope.test = data.data;
});

$scope.form = {};
$scope.checkboxes = [];

$scope.testa = function(id) {
$scope.checkboxes.push(id);
};

$scope.submitForm = function(isValid) {
if(isValid)
{
$http.post($rootScope.appUrl + '/nao/test', $scope.form)
.success(function(data, status, headers, config) {
console.log(data);
console.log($scope.form);
}).error(function(data, status) {

});
}
};
});

编辑:问题出在我的后端。我忘记添加一个执行 mysql 查询后返回的参数。

最佳答案

我看到两种可能性。

首先,您应该在 $http 调用之前初始化测试范围变量(以确保即使 http 请求失败也能初始化它)。然后创建一个 updateTest 方法,该方法将在提交表单成功时调用(以更新测试变量)。

你的代码应该是这样的:

as.controller('Test', function($scope, $http, $rootScope, testFactory)
{
// METHOD to update test items
updateTest = function() {
$http.get($rootScope.appUrl + '/nao/test/test')
.success(function(data, status, headers, config) {
$scope.test = data.data;
});
};

// init variables
$scope.form = {};
$scope.checkboxes = [];
$scope.test = [];

$scope.testa = function(id) {
$scope.checkboxes.push(id);
};

$scope.submitForm = function(isValid) {
if(isValid)
{
$http.post($rootScope.appUrl + '/nao/test', $scope.form)
.success(function(data, status, headers, config) {
console.log(data);
console.log($scope.form);
// update test item (to get back newly created one)
updateTest();
}).error(function(data, status) {

});
}
};

// first test items update
updateTest();
});

关于javascript - 带有 ng-repeat 的空表行,AngularJS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24822117/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com