在我的测试中.js控制器 if/else 语句注销一个对象以进行 ng-click
angular.module('stationeryApp')
.factory('Cards', function () {
var Cards = [];
return Cards
})
.controller('TestCtrl', function ($scope, $log, Cards) {
$scope.cards = Cards
$scope.cardClick = function () {
if ($scope.card['fName']!=="" && $scope.card['lName']!=="") {
$scope.cards.push($scope.card)
$scope.card={fName:'',lName:''}
console.log($scope.card);
} else {
console.log($scope.card);
}
}
});
这是测试.HTML:
<div>
<md-toolbar layout='column' layout-align='center'>
<md-button layout-margin layout-padding flex='100' class='md-raised md-primary'>
<h1>{{ card.fName }}</h1>
<h1>{{ card.lName }}</h1>
</md-button>
<div layout='column' layout-align='center center' >
<input type="text" style="color:black;" flex='' ng-model="card.fName">
<input type="text" style="color:black;" flex='' ng-model="card.lName">
</div>
</md-toolbar>
</div>
如果没有 if 语句,每次调用 cardClick() 时,Cards 数组都会将两个对象推入其中。第一个对象是输入的 ng 模型,第二个对象始终是空字符串。
例:
fName input = "Stack"
lName input = "Overflow"
cardClick()
result --> Cards = [{fName:"Stack", lName:"Overflow"},{fName:"",lName:""}]
fName input = "Java"
lName input = "Script"
cardClick()
result --> Cards = [{fName:"Stack", lName:"Overflow"},{fName:"",lName:""},{fName:"Java",lName:"Script"},{fName:"",lName:""}]
包含 if 语句将产生所需的结果
例:
fName input = "Stack"
lName input = "Overflow"
cardClick()
result --> Cards = [{fName:"Stack", lName:"Overflow"}]
fName input = "Java"
lName input = "Script"
cardClick()
result --> Cards = [{fName:"Stack", lName:"Overflow"},{fName:"Java",lName:"Script"}]
我的问题是为什么 if 语句会带来该结果,为什么 if/else 语句在测试.js每次调用 cardClick() 时注销 if 和 else 结果。
编辑
这是没有if/else的代码。这将呈现第一个示例中的结果。
angular.module('stationeryApp')
.factory('Cards', function () {
var Cards = [];
return Cards
})
.controller('TestCtrl', function ($scope, $log, Cards) {
$scope.cards = Cards
$scope.cardClick = function () {
$scope.cards.push($scope.card)
$scope.card={fName:'',lName:''}
console.log($scope.card);
}
});
这一行:
console.log($scope.card);
同时显示在您的if
对账单和else
对账单中。因此,无论哪种方式,您都会看到记录。
至于if/else
问题,您能否提供已删除if/else
的代码,以便我们进行比较?