他のドロップダウンリストの選択した値に従って、AngularJSフィルタドロップダウンリスト

StackOverflow https://stackoverflow.com//questions/24061273

質問

次の機能を実装したいです。

1入力フィールドと2ドロップダウンリストがあるとします。入力フィールドで、電子メールアドレスを入力して、この電子メールの種類の種類(個人的、専門家、その他、または何もしない)を選択できます。

今すぐ最初のドロップダウンリストに表示される電子メールのリストが表示され、選択したEメールアドレス。

だから何が起こるべきです:

1)入力フィールドに何もない場合、優先電子メールドロップダウンリストが空の場合(これはすでに事件です)。

2)電子メールが入力されていてタイプがある場合は、この値を含めるには、次の値を含める必要があります。 test@test.com(Personal)

3)電子メールが入力されていますがタイプなしの場合、優先電子メールドロップダウンリストにはこの値が含まれているはずです。たとえば、Typeがいなくても、 test@test.com


HTML:

<div ng-repeat="email in contactInfo.emails">
    <input id="email" type="text" ng-model="email.email"/>
    <select id="emailType" ng-model="email.emailTypeId" ng-options="emailType.id as emailType.name for emailType in emailTypes">
        <option value="">Choose...</option>
    </select>
</div>

<br/><br/>

<label>Preferred e-mail:</label>
<select style="margin-left: 20px; width: 50%;" id="preferred-email" ng-model="contactInfo.preferredEmail" ng-options="email.email for email in (contactInfo.emails | filter:filterEmail) track by email.id">
    <option value="">Choose...</option>
</select>
.


JavaScript:

function MyCtrl($scope){
    $scope.contactInfo = {};
    $scope.emailTypes = [{"label":"Personal","id":1,"name":"Personal","rank":2},{"label":"Professional","id":2,"name":"Professional","rank":2},{"label":"Other","id":3,"name":"Other","rank":4}];

    $scope.contactInfo.emails = [{"id":1100, "emailTypeId":2,"email":"member@test.com"}, {"id":1200, "emailTypeId":1,"email":"member2@test.com"}];
    $scope.contactInfo.prefferedEmail = {};

    $scope.filterEmail = function(email){
        return (email.email);
    }
}
.


jsfiddle:

ここはフィドルですが、最初のものだけが機能しています。

アリの手がかりを持っていないので、誰かが私を助けることができれば素晴らしいことだろう。あなたの時間をありがとうございました。

Sven

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top