簡體   English   中英

AngularJs-同時撥打多個服務電話?

[英]AngularJs - make several service calls simultaneously?

我有一個非常大的搜索表單,除其他字段外,其中包含8個必須從Web服務填充的選擇控件。 我在如何最好地使用AngularJs做到這一點上有些掙扎。 我調用一個,然后將下一個放在“ then”子句中,然后在該“ then”子句中ext,依此類推嗎? 僅僅看一下就使我認為必須有一種更好的,格式正確的方法來實現此目的,而我只是想念它,因為我是Angular的新手...

為了說明這個問題,我有以下HTML(整個表單的一部分):

<div class="row">
    <div class="col-md-12">
        <div class="col-md-2">
            <label for="ddlRace">Race</label>
            <select id="ddlRace" class="form-control"></select>
        </div>
        <div class="col-md-2">
            <label for="ddlHairColor">Hair Color</label>
            <select id="ddlHairColor" class="form-control">
            </select>
        </div>
        <div class="col-md-2">
            <label for="ddlEyeColor">Eye Color</label>
            <select id="ddlEyeColor" class="form-control">
            </select>
        </div>
        <div class="col-md-2">
            <input type="text" id="tbHeight" class="form-control">
        </div>
        <div class="col-md-2">
            <input type="text" id="tbWeight" class="form-control">
        </div>
    </div>
</div>
<div class="row">
    <div class="col-md-3">
        <label for="tbStreetNumber">House Number</label>
        <input type="text" id="tbStreetNumber" class="form-control">
    </div>
    <div class="col-md-2">
        <label for="ddlStreetPrefix">Prefix</label>
        <select id="ddlStreetPrefix" class="form-control">
            <option value="">Prefix</option>
        </select>
    </div>
    <div class="col-md-5">
        <label for="tbStreetName">Street Name</label>
        <input type="text" id="tbStreetName" class="form-control">
    </div>
    <div class="col-md-2">
        <label for="ddlStreetSuffix">Suffix</label>
        <select id="ddlStreetSuffix" class="form-control">
            <option value="">Suffix</option>
        </select>
    </div>
</div>

我必須在服務電話中填寫種族,頭發顏色,眼睛顏色,街道前綴和街道后綴。 我有一個工廠設置,其中每個都有調用,但是在表單初次加載時我需要運行所有這些調用,以便填充字段。 那么,使用延遲/承諾API的最佳方法是什么?

依次調用每個promise,而不用“ then”子句將它們鏈接在一起。 否則,如果您這樣做,它們將連續運行-這不是您想要的。

當所有的諾言都已解決或出現問題時,請使用$ q.all注冊成功/錯誤回調:

var p1 = promise1();
var p2 = promise2();
var p3 = promise3();

$q.all([p1, p2, p3])
       .then(
             function() { /*success*/ },
             function() { /*error */ }
        );

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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