如何根据angularjs中的布尔值显示和隐藏元素属性?

时间:2015-11-26 11:17:16

标签: javascript angularjs

ctrl.js

在控制器中,如果用户登录编辑页面,则值为true

var self = this;
self.edit = "true"

HTML

在添加页面时,它应该是

<md-input-container flex="25">
<label>GameId</label>
<input name="games" ng-model="ctrl.game" ng-required="true" ng-maxlength="50" custome-directive-to-check-unique-value >
</md-input-container>

在编辑页面上,它应该是

<md-input-container flex="25">
<label>GameId</label>
<input name="games" ng-model="ctrl.game" ng-required="true" ng-maxlength="50" disabled>
</md-input-container>

对于禁用,我可以使用ng-disabled=ctrl.edit禁用输入字段,如何执行指令custome-directive-to-check-unique-value

3 个答案:

答案 0 :(得分:2)

您只需根据值使用属性ng-showng-hide

<div ng-hide="edit">Edit is False</div>

<div ng-show="edit">Edit is True</div>

如果edit为true,那么ng-show将为true,显示消息Edit is True

答案 1 :(得分:1)

您可以使用两个输入字段,并使用ng-if根据bool值显示其中一个字段,该值指定是添加视图还是编辑视图。

<input ng-if="!ctrl.edit" name="games" ng-model="ctrl.game" ng-required="true" ng-maxlength="50" custome-directive-to-check-unique-value  >
<input ng-if="ctrl.edit" name="games" ng-model="ctrl.game" ng-required="true" ng-maxlength="50" disabled>

答案 2 :(得分:0)

  1. 您可以使用ng-disabled指令来禁用或启用输入文字,但我已经看到您已经这样做了。

    1. 至于指令禁用,为什么不在指令体内使用if语句,并根据ctrl.edit值检查您需要做什么。
  2. 执行此操作只需将输入文本中的ctrl.edit传递给您的指令,如下所示:

    <强> HTML

    <input name="games" ng-model="ctrl.game" ng-required="true" ng-maxlength="50" custome-directive-to-check-unique-value   myFlag = "ctrl.edit">
    

    <强>指令

    .directive('customeDirectiveToCheckUniqueValue', function () {
                return {
                    restrict: 'AE',
                    scope:{
                       myFlag :'='
                     },
                    link: function (scope, element, attrs) {
                        //here make your condition and add your code accordingly
                        if(myFlag){
                           //if true your code
                        }else{
                           //if false your code
                         }
                    }
                };
            })
    

    希望有所帮助,祝你好运。