2017-04-07 82 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加载下拉数据外,这种方式不需要任何手动干预。