[英]Binding data from view to controller in AngularJS
您好,我正在构建一个角度应用程序,而我的条纹表格内部存在问题。 基本上,我从视图将数据(例如卡号,有效期和CVC代码)从视图发送到控制器的条纹回调,但是我还要添加要支付的金额。 所以我将其添加到表单中:
<form stripe-form="handleStripe" name="myForm">
<!-- input added for the price -->
<div class="row" ng-if="!unregistered_user">
<div class="input-field col col-xs-12">
<label for="name">Amount </label>
<input name='price' type="number" id="amount" ng-model="price">
</div>
</div>
<!-- credit/debit card form -->
<div class="row">
<div class="input-field col col-xs-12">
<label for="cardn">Card number</label>
<input type="text" name="number" id="cardn" ng-model="number" payments-validate="card" payments-format="card" payments-type-model="type" ng-class="myForm.number.$card.type"/>
</div>
</div>
<div class="row">
<div class="input-field col-xs-6">
<label for="exp">Expiry</label>
<input type="text" id="exp" ng-model="expiry" payments-validate="expiry" payments-format="expiry" />
</div>
<div class="input-field col-xs-6">
<label for="cvc">CVC</label>
<input type="text" id="cvc" ng-model="cvc" payments-validate="cvc" payments-format="cvc" payments-type-model="type"/>
</div>
</div>
<div class="row">
<div class="input-field col-xs-12">
<button type="submit" class="btn btn-primary btn-large">Pay {{ price }}</button>
</div>
</div>
</form>
在控制器中,我有这个变量:
▸ $scope.price = 0;
当我第一次加载页面时,我可以看到价格输入与变量$ scope.price中输入的金额完全相同。 但是,当我在页面中更改它并提交表单时,$ scope.price始终为0。这就像是将数据从控制器传递到视图,而不是从视图传递到控制器一样。
我该如何解决?
我认为您的问题在于ng-if,这会将您的输入内容与价格模型进行包装。 ng-if会创建自己的范围,在您的情况下,价格与ng-if内的范围有关,而不与您的控制器有关。 您可以改用ng-show,也可以这样设置模型:ng-model =“ $ parent.price”或使用controllerAs语法,您不必担心这个问题了。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.