【发布时间】:2018-08-13 14:37:31
【问题描述】:
我有一个表格,每行显示一个按钮。我有一个要求,我必须有条件地在这些行中显示具有不同状态的按钮。所以在我看来,我对每个按钮都使用了ng-show。
<table>
<tr>
<td>row1 col1</td>
<td>
<button ng-show="!func1(param1,param2)" >
<button ng-show="func1(param1,param2)">
</td>
</tr>
<tr>
<td>row2 col2</td>
<td>
<button ng-show="!func1(param1,param2)" >
<button ng-show="func1(param1,param2)">
</td>
</tr>
</table>
在我的 .js 文件中:
$scope.func1 = function(p1,p2) {
if(p1 === 'A' && p2 === 'B') {
return true;
} else {
return false;
}
}
现在控制器中的另一个函数更改了ng-show 函数的返回值。我可以在开发者工具中看到该函数现在返回一个不同的值,但视图没有得到更新。
您能告诉我我在这里做错了什么还是有更好的方法来实现这一点?
【问题讨论】:
-
建议将返回值分配给 Scope 变量并将该变量放在 ng-show 上,例如:ng-show="isButtonShow" on function $scope.func1 = function(p1, p2) { //如果条件 $scope.isButtonSow = true }
-
每一行的参数值不同。所以它必须为每一行执行。如果我让它基于变量,我如何为每一行执行它?
标签: javascript html-table cell ng-show