4

有没有办法将 ng-show 表达式绑定到包含绑定表达式本身的字符串?

例如:

field={};
field.a=true;
field.showExpression='a == true';

<input ng-show="field.showExpression">

我也试过<input ng-show="{{field.showExpression}}">了,但它们似乎都不起作用。

我希望绑定保持活动状态,以便当 field.a 对象从 true 变为 false 时,表达式会再次被评估,从而隐藏输入。

就像背景一样,我正在尝试实现依赖性下拉列表,因此我的showexpress应该是表单字段。showExpression='maindropDownValue!= null',每当将被绑定到MainDropDownValue被选中的MainDropdown时,就会显示第二个。

我正在使用角度 1.0.8

4

1 回答 1

5

showExpression 被评估为字符串而不是 JS 代码。您必须改用函数。

$scope.isTrue = function() {
    return $scope.field.a; // or a more complex check
}
//
ng-show="isTrue()"

如果您只需要检查布尔值,则可以直接在视图中检查 var:

ng-show="field.a"

如果你真的想使用 eval,这就是你想要的:

ng-show="$parent.$eval(field.showExpression)"

链接:http ://docs.angularjs.org/guide/expression

于 2013-11-27T08:08:47.343 回答