繁体   English   中英

模板Angularjs中的ng-repeat

[英]ng-repeat inside a template Angularjs

我有如下付款指令。 付款可以具有多种不同的付款方式之一。 模板旁边有一个选择列表,该列表应该来自传入的付款方式列表。

但是目前,选择列表中没有任何内容。

我对棱角还很陌生。

付款指令

angular.module('filanthropyApp.directives', [])
.directive('payment', function () {
return {
    restrict: 'EA',      
    templateUrl: '/Content/filanthropyApp/Directives/Templates/payment.html',
    replace: true,
    scope: {
        paymentMethods: '=paymentMethods'

    }
 };
});

付款模板

<div>
<div class="col-md-8 input-group">
    <label class="control-label col-md-4">Payment Amount</label>
    <input type="text" class="form-control" value="{{payment.Amount}}" ng-model="payment.Amount" />
</div>

<div class="col-md-8 input-group">
    <label class="control-label col-md-4">Payment Method</label>
    <select ng-model="payment.PaymentMethodId" name="paymentMethods" ng-options="paymentMethod.Id as paymentMethod.Name for paymentMethod in paymentMethods">
        <option value="">Select a Payment Method</option>
    </select>
</div>

呼叫页面

<section id="payments">

            <div class="form-group payment" ng-repeat="payment in pledgeData.Payments">

                <payment paymentMethods="pledgeData.PaymentMethods" />

            </div>

            <button class="btn btn-default" ng-click="addPayment()">Add New Payment</button>

        </section>

在调用页面中以错误的方式指定了属性名称,它应该是付款方式。

<payment payment-methods='pledgeData.PaymentMethods'...

Angular具有在HTML中使用破折号和在代码中使用camelCase的约定。

此外,由于在指令的隔离范围内使用的键名为属性,因此也可以将其指定为:

scope: {
     paymentMethods: '='
}

无需重复。

在您的指令中,您将范围定义为包含一个名为paymentMethods的单个属性。 但是,在模板中,您仅指payment 请注意,指令的内部作用域不能访问在指令定义上定义scope属性时使用的外部作用域。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM