簡體   English   中英

將數據從視圖綁定到AngularJS中的控制器

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM