2017-04-07 94 views
0

我們有一個Angular應用程序,其中包含名爲Rule的模型的編輯表單。這包含名稱,說明等字段,這些字段都是文本輸入。然後是RuleType模型,它是Rule模型的歸屬關係。我們希望在編輯規則時以RuleTypes的下拉菜單的形式實現它。這些規則類型可以通過AJAX從數據庫中加載(因此不會在Angular應用程序中進行硬編碼)。在角度中編輯關係編輯

從API返回的規則模型JSON當前看起來如下所示。

  • 實現API調用來獲取所有RuleTypes:這可以根據需要

    { 
        "name": "TestRule", 
        "description": "This is a rule", 
        "ruleTypeId": 2, 
        "ruleType": { 
         "id": 2, 
         "name": "Instant", 
         "key": "INSTANT" 
        } 
    } 
    

    兩種方式我都想過獲取數據的下拉列表如下改變。那麼這個映射到下拉列表,選擇基於掀起了「ruleTypeId」字段的規則模型

    • PROS適用的一個:是與API設計
    • 缺點適合一個通用的方法:需要一個額外的HTTP請求,手動邏輯來計算所選項目
  • 返回所有RuleType列表作爲API調用的一部分以獲取規則。
    • 優點:只需要一個API調用
    • 缺點:額外的數據增加了API調用獲取規則。不與REST API設計

合身什麼是最好的做法獲取這個數據,並將其映射至角模型/視圖/清潔方法?

回答

0

通過在控制器中通過單獨的Ajax請求加載規則類型,可以很好地解決這個問題。然後使用ngOptions指令填充下拉菜單。 ngModel指令處理根據ruleTypeId選擇正確的項目。然後在保存規則模型時使用Ajax將其保存。

除了通過Ajax加載下拉數據外,這種方式不需要任何手動干預。