Angular如果条件不读取ng-show的substr条件

时间:2015-08-23 17:21:05

标签: javascript angularjs

我对angular和js很新,我正在学习ng-show。 我发现如果控制器中的条件无法对值进行切片或子串

我的代码是

 <tbody>
    <tr>
      <td>
        <input type="text" ng-model="row1" size=6/ disabled>
      </td>
      <td>
        <input type="text" ng-model="dup_row1 " size=6/>
      </td>

    </tr>

    <tr ng-show="row2()">
      <td>
        <input type="text" ng-model="dup_row1"  size=6/>
      </td>
      <td>
        <input type="text" ng-model="dup_row2 " size=6/>
      </td>
    </tr>

  </tbody>

和控制器包含

$scope.row2=function(){
  if($scope.dup_row1.substr(0,2) > 24){
    return true;
  }
}

我只想检查前两个数字以显示下一行

任何建议都值得赞赏,同时也提到链接http://jsfiddle.net/u3yj39u9/

提前致谢

2 个答案:

答案 0 :(得分:1)

始终遵循始终拥有'。'的“最佳实践”。在您的ng模型中,您可以避免很多问题。

你的控制器也是如此:

$scope.tableVals = {};

然后你的所有值都应该是这个对象的属性。

This article可能会有所帮助。

这里有一个有效的example

答案 1 :(得分:0)

代码在初始摘要上立即引发错误$scope.dup_row1未定义且您的函数仅在满足条件时返回但如果不是

则不返回任何内容

一个简单的解决方法:

$scope.row2=function(){
  if($scope.dup_row1 && $scope.dup_row1.substr(0,2) > 24){
    return true;
  }
  return false;
}

DEMO