我正在尝试编写一个指令,用于编辑预先不知道其定义的数据数组。数据有两部分,首先是页面加载时加载的定义数据结构,看起来有点像这样:
[
{ 'name': 'First field',
'type: 'String',
'required': true,
'default': 'x'
},
{ 'name': 'Second field',
'type': 'list',
'values': ['one', 'two', 'three' ],
}
... and so on
]
然后,当用户编辑数据时,我使用$ http从服务器加载数据结构,如下所示:
{
'not': 'important',
'blah': 'blah',
...
'customfields': [
{
name:'First field',
value: 'a value'
},
{
name:'Second field',
value: 'one'
}
]
}
更糟糕的是,customfields结构中的名称/值对不能保证与定义的顺序相同,甚至可能只是定义字段的一个子集(在这种情况下,我想显示默认值,如果存在) 理想情况下,我想创建一个AngularJS指令,以便我可以添加
<fieldeditor field='customfields' />
到页面,它将根据需要充实HTML。我已经到了指令查找定义并创建HTML模板的地步,但我不知道如何将其连接到数据。是否可以在指令中添加钩子,以便在呈现数据时为每个字段调用一个函数,在用户修改数据时调用另一个函数?不幸的是,我无法在postLink中执行此操作,因为它在$ http数据加载之前被调用