0
我有這個小應用程序,允許用戶輸入汽車的品牌和型號,然後將其添加到下表。我添加了一個函數來檢查重複項,並在表中已經存在的情況下發出警報。如果沒有匹配的現有記錄,它會將新的「make」和「model」推送到表中。我改變了代碼使用_.isEqual而不是我之前所做的,現在它每次運行時都會在Alert中被捕獲。任何人都知道發生了什麼事?功能,它檢查重複項工作不正常
<div>Make: <input type="text" ng-model="make"></div>
<div>Model:<input type="text" ng-model="model"></div>
<button ng-click="add()">Add</button>
<tr>
<th>Make</th>
<th>Model</th>
</tr>
<tr ng-repeat="car in cars" ng-click="rowClick(car)">
<td>{{car.make}}</td>
<td>{{car.model}}</td>
</tr>
var carsApp = angular.module('carsApp', []);
carsApp.controller('carController', function ($scope){
$scope.cars = [];
$scope.add = function() {
var newCar = {
make: $scope.make,
model: $scope.model
};
function hasDuplicates(){
angular.forEach($scope.cars, function(car, key){
_.isEqual(car, newCar);
});
}
if (hasDuplicates) {
alert("Car already exists");
} else {
$scope.cars.push(newCar);
}
}
$scope.rowClick = function(car){
$scope.make= car.make;
$scope.model= car.model;
};
$scope.make = null;
$scope.model = null;
});
因爲你只檢查'_.isEqual(汽車,newCar);',但真的不這樣做,結果什麼。你應該做一些像isEqual = isEqual ||的事情_.isEqual(汽車,newCar);'並返回 –
您還沒有調用'hasDuplicates'功能的結果,所以'如果(hasDuplicates)'永遠是正確的。 – hughes
@噓謝謝你! –