จะทำให้ดรอปดาวน์เลือกค่าที่แน่นอนจากการรับ id จากฐานข้อมูลได้อย่างไร

โค้ดด้านล่างแสดงรายการแบบเลื่อนลงจากการใช้ ng-repeat เมื่อฉันแก้ไขเอนทิตีนี้ ฉันต้องทำให้พวกเขาแสดงค่าบางอย่างที่เลือกไว้แล้ว แทนที่จะแสดงรายการทั้งหมด ฉันรู้ว่าฉันสามารถใส่คำหลัก selected เมื่อฉันต้องการเลือกค่าที่ต้องการ ถ้าอย่างนั้นถ้าฉันใช้ ng-repeat เพื่อเติมรายการแบบเลื่อนลงล่ะ? ฉันจะทำให้ดรอปดาวน์เลือกค่าบางอย่างโดยใช้รหัสได้อย่างไร

<div ng-if="field.name=='ClienteleId'" class="input-group inputFill">
    <select ng-disabled="defaultSaveButtons[$index]" class="form-control inputFill2"
    ng-model="field.value" ng-options="clientele.id as clientele.name for clientele in     dropdown.clienteleOptions  | orderBy:'name'  track by clientele.id"></select>
 /div>


person user13151042    schedule 03.04.2020    source แหล่งที่มา


คำตอบ (1)


หากต้องการตั้งค่าของ <select> ใน AngularJS คุณจะต้องเปลี่ยนตัวแปรที่กำหนดเป็น ng-model ให้เป็นหนึ่งในค่าในตัวเลือกของคุณ

ในกรณีของคุณ คุณมี field.value เป็น ng-model และตัวเลือกของคุณใช้แอตทริบิวต์ name เป็นป้ายกำกับ และใช้แอตทริบิวต์ id เป็นค่า หากต้องการเลือกรายการใดรายการหนึ่งใน dropdown.clienteleOptions เป็นค่าเริ่มต้น คุณต้องตั้งค่า field.value เป็นแอตทริบิวต์ id ของรายการที่เกี่ยวข้องใน dropdown.clienteleOptions

ลองนึกภาพตัวเลือกและฟิลด์ของคุณมีลักษณะดังนี้:

$scope.clienteleOptions = [
    {id: 1, name: 'test 1'},
    {id: 2, name: 'test 2'}
];

$scope.fields = [
    {name: 'ClienteleId', value: null}
    // ...
];

ในคอนโทรลเลอร์ของคุณ คุณจะมีสิ่งนี้ให้เลือกการทดสอบ 2:

$scope.fields[0].value = 2;

หรือเพื่อให้มีไดนามิกมากขึ้น:

$scope.fields.forEach(function (field) {
    if (field.name === 'ClienteleId') {
        field.value = 2;
    }
});
person PLPeeters    schedule 03.04.2020