处理Angular

时间:2017-04-07 04:21:01

标签: javascript angularjs ajax

我们有一个Angular应用程序,其中包含一个名为Rule的模型的编辑表单。它包含名称,描述等字段,它们都是文本输入。然后有一个RuleType模型,它是Rule模型的所属关系。我们希望在编辑规则时以RuleTypes的下拉菜单的形式实现它。这些RuleTypes将通过AJAX从数据库加载(因此不会在Angular应用程序中进行硬编码)。

从API返回的规则模型JSON目前如下所示。如果需要,可以更改

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

我考虑过为下拉列表获取数据的两种方法如下:

  • 实现API调用以获取所有RuleTypes。然后将其映射到下拉列表,并根据规则模型上的“ruleTypeId”字段选择适用的一个
    • PROS:是一种适合API设计的通用方法
    • CONS:需要额外的HTTP请求和手动逻辑来计算所选项目
  • 返回所有RuleType的列表,作为API调用的一部分以获取规则。
    • PROS:只需要一次API调用
    • CONS:向API调用添加额外数据以获取规则。不适合REST API设计

获取此数据并将其映射到Angular中的模型/视图的最佳实践/最简洁方法是什么?

1 个答案:

答案 0 :(得分:0)

通过在控制器中通过单独的Ajax请求加载RuleTypes来管理以很好的方式解决这个问题。然后使用ngOptions指令填充下拉列表。 ngModel指令处理基于ruleTypeId选择正确的项目。然后在保存规则模型时使用Ajax将其保存回来。

除了通过Ajax加载下拉数据外,这种方式不需要任何手动干预。