我有一个用户可以选择编辑的信用卡列表。信用卡表单绑定到列表,如果他们在给定的卡上选择编辑,则会显示该表单。信用卡表格是自定义指令。用户还可以添加新卡。如果信用卡表格可见,则通常的字段是必需的,但如果不可见,则不应要求/验证。可见性由 ng-show 管理。
这是指令用法的简化版本。该指令本身就像您期望的那样简单。
<div data-ng-repeat="profile in paymentProfiles" data-ng-show="profile.PaymentProfileGuid == SelectedPaymentProfile && options.enableCreditCardEdit">
<creditcard-widget title="Enter your Card Information"
card="profile" isrequired="profile.PaymentProfileGuid == SelectedPaymentProfile && options.enableCreditCardEdit"></creditcard-widget>
</div>
我尝试以双向、单向和文本方式绑定 isrequired。它仅作为文本起作用,并且仅当我传递一个值而不是表达式时。如何将标志传递给至少是单向数据绑定的指令?
编辑 我试过用“@”、“&”和“=”传递参数。我正在尝试减少足够的内容以发布 jsfiddle 或 plukr 链接。这是指令js:
.directive('creditcardWidget', function () {
return {
controller: 'CreditcardWidgetController',
restrict: 'E, A',
templateUrl: '/app/views/partials/creditcardWidget.html',
scope: {
card: "=card",
types: "=",
months: "=months",
years: "=years",
title: "@",
opt: "&",
prefix: "@",
isrequired: "&"
}
};
});
编辑 2
这是一个简化的plnkr