【问题标题】:How to use ternary operator to change value of ng-model in AngularJS?如何使用三元运算符更改 AngularJS 中 ng-model 的值?
【发布时间】:2015-08-12 18:38:55
【问题描述】:

我有一个文本字段和一个复选框。如果复选框为真,我希望地址字段中的值位于复选框之后,如果为假,则该字段应为空。我尝试了 ng-class 和更多的三元运算符,但没有运气。什么是最好的和有效的解决方案?

jsfiddle

<form name="form" ng-app>
<div class="form-group form-group-lg required">
    <label class="col-md-2 control-label">Address:</label>
    <div class="col-md-10" ">
        <input type="text " name="address " class="form-control " ng-model="address " ng-minlength="4 " placeholder="Address " required>
     </div>

</div>   
<div class="form-group form-group-lg">
    <label class="col-md-2 control-label">Return Address</label>

    <div class="col-md-10">
        <div class="input-group">
            <span class="input-group-addon">
               <!--condition ? first_expression : second_expression; -->
                <input type="checkbox" ng-model="isReturnAddress" ng-change="">
            </span><!--condition ? first_expression : second_expression; -->
            <input type="text" class="form-control" ng-model="address">
         </div>
 {{isReturnAddress}}
    </div>
</div> 
<button type="submit " class="btn btn-primary btn-large " ng-click="submitted=true ">Submit</button>

【问题讨论】:

  • 你可以做一些内联的事情,但为什么不在控制器上提供一个方法来为你处理逻辑呢?然后调用 {{putTextIWantHere()}}
  • 我正在尝试同时学习 AngularJS,但也许我只是在控制器内部处理它。我在想这将是一个简单的案例,但我意识到它不是:)
  • 哦,如果您是全新的,那么您可能正在寻找 ng-if 或 ng-show。我以为你在谈论不使用这些。
  • 这些也可以。我将它实现到控制器并且工作正常,但如果你有什么想法,我很高兴听到它,我的意思是没有向控制器添加任何东西。

标签: javascript angularjs ternary-operator ng-class


【解决方案1】:

在这种情况下,您应该使用两个输入元素。喜欢

<input ng-if="isReturnAddress" type="text" class="form-control" ng-model="address">
<input ng-if="!isReturnAddress" type="text" class="form-control">

请在您的控制器中检查

if($scope.isReturnAddress){
  var address = $scope.address;
}

在此处查看工作fiddle

【讨论】:

  • 这太容易了 :) 谢谢。三元甚至可能吗?也许吧,但试图解决它只是浪费时间。顺便说一句,如果我想在不使用控制器的情况下显示地址、城市、zip 等,是否可以组合 ng-models?
  • 那个三元运算版本有一些错误,但我对第一个版本很满意。无论如何我都必须使用控制器版本,因为我想用城市、国家和邮编显示整个地址,而且它们的型号不同。非常感谢!
猜你喜欢
  • 2016-08-27
  • 2016-03-26
  • 1970-01-01
  • 1970-01-01
  • 2015-04-06
  • 2018-09-08
  • 1970-01-01
  • 2020-12-29
  • 1970-01-01
相关资源
最近更新 更多