ng-show以角度表示绑定到字符串表达式

Lui*_*Rol 4 angularjs ng-show

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

例如:

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

<input ng-show="field.showExpression">
Run Code Online (Sandbox Code Playgroud)

我也尝试<input ng-show="{{field.showExpression}}">过,但似乎都没有.

我希望bind保持活动状态,这样当field.a对象从true变为false时,表达式会再次被计算,隐藏输入.

就像背景一样,我正在尝试实现依赖的下拉菜单,所以我的showExpressions应该是form.showExpression ='maindropdownValue!= null',每当选择绑定到maindropdownValue的maindropdown时,第二个显示.

我使用角1.0.8

Dan*_*ara 5

showExpression被评估为String而不是JS代码.你必须使用一个函数.

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

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

ng-show="field.a"
Run Code Online (Sandbox Code Playgroud)

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

NG-秀= "$父.$的eval(field.showExpression)"

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