ng-click 函数记录 if 和 else 语句



在我的测试中.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的代码,以便我们进行比较?

相关内容

  • 没有找到相关文章

最新更新