如何使用ng-if显示和隐藏布尔值

时间:2017-11-03 12:00:04

标签: javascript angularjs

努力找出在最后一个span元素中放入“I_DO_NOT_KNOW”的内容,这是我的标记:

<div class="row">
  <div class="key" translate>Label</div>
  <div class="value form-group">
    <input id="myId"
            class="form-control"
            type="text"
            name="nameAttrFoo"
            ng-model="vm.myModelValue"
            ng-blur="sanitizeInput(vm.myModelValue)"
            required 
    />
    </div>
<div class="value form-group pull-right" ng-hide="formName.nameAttrFoo.$untouched">
    <span class="note note-error"
            ng-show="formName.nameAttrFoo.$error.required"
            ng-hide="formName.nameAttrFoo.$dirty">
        Required field!
    </span>
    <span class="note note-error" ng-if="I_DO_NOT_KNOW">
        Number is bigger than this big prime!                
    </span>
</div>

这是我进行比较的函数,返回true或false:

var boolie = false;
$scope.sanitizeInput = function(myModelValue) {
    var toInt = parseInt(myModelValue);
    var primeNr = 2147483647;

    if (toInt > primeNr) {
        boolie = true;
    } else {
        boolie = false;
    }
}
感觉就像一个完全愚蠢的人在这里,因为我不能为我的生活得到我的用户反馈线“数字大于这个大素数!”显示。我在ng-if =“I_DO_NOT_KNOW”中尝试过很多东西,请发送帮助。

1 个答案:

答案 0 :(得分:0)

只需将boolie放在范围内,例如:

$scope.boolie = false;
$scope.sanitizeInput = function(myModelValue) {
    var toInt = parseInt(myModelValue);
    var primeNr = 2147483647;

    if (toInt > primeNr) {
        $scope.boolie = true;
    } else {
        $scope.boolie = false;
    }
}

然后:

<span class="note note-error" ng-if="boolie">

如果您不想在示波器中设置boolie,可以直接调用您的功能,但由于已经调用模糊事件,我认为这不是您的意思想要(它必须工作):

<span class="note note-error" ng-if="sanitizeInput(vm.myModelValue)">

希望这有帮助;)