我正在尝试根据条件设置td值,这是我的代码
<td>
<span ng-init="tdValue=true;"></span>
<span ng-repeat="value in data_report" ng-if="fellow.F_Id==value.fellowship_id">
<span ng-init="tdValue=false;">{{value.Completed}}</span>
</span>
<span ng-if="tdValue">0</span>
</td>
在下面的代码中,我正在检查 1.如果条件匹配,则将值设置为value.completed 2.如果不将默认值保持为零
但我得到的结果是 14 0
14是value.completes,0是默认值(两个值都打印出来)
答案 0 :(得分:1)
您必须定位嵌套的<span>
,而不是转发器<span>
本身:
<td>
<span ng-init="tdValue=true"></span>
<span ng-repeat="value in data_report">
<span ng-if="fellow.F_Id==value.fellowship_id" ng-init="$parent.$parent.tdValue=false">{{value.Completed}}</span>
</span>
<span ng-if="tdValue==true">0</span>
</td>
另外
ng-repeat
和ng-if
都会创建嵌套的子范围,因此需要$parent.$parent
来解决外部tdValue
ng-if
必须由表达式组成,即ng-if="tdValue == true"
答案 1 :(得分:0)
您可以使用三元运算符
<td>
<span ng-init="tdValue=true;"></span>
<span ng-repeat="value in data_report" ng-if="fellow.F_Id==value.fellowship_id">
<span>{{tdValue==true?value.Completed:0}}</span>
</span>
</td>
答案 2 :(得分:0)
您可以改为删除此ng-init="tdValue=true;"
并在控制器内声明它。
$ scope.tdValue = TRUE;
答案 3 :(得分:0)
试试这个
<td>
<span >{{selectedId}}</span>
</td>
这是您可以尝试的控制器代码。
$scope.selectedId=0;
for(var i=0;i<$scope.data_report.length;i++){
if($scope.fellow.F_Id==$scope.data_report[i].fellowship_id){
$scope.selectedId=$scope.data_report[i].fellowship_id;
break;
}
}
答案 4 :(得分:0)
然后你必须在你使用ng-repeat的span标签上应用if条件。
<td>
<span ng-init="tdValue=true"></span>
<span ng-repeat="value in data_report" ng-if="fellow.F_Id==value.fellowship_id">
<span ng-init="$parent.$parent.tdValue=false">{{value.Completed}}</span>
</span>
<span ng-if="tdValue==true">0</span>
</td>