首先,我想说Angular Formly对于像我这样的新手来说是一个很棒的图书馆。我不是一个Web开发人员,但是发现这个库非常直观且功能强大。
但是我确实需要使用Expression Properties的帮助。
我有一个包含库项目的模型库,例如:
{
"itemId":"STX001",
"title":"Grey Wolf",
"category":"White", etc.
}
{
"itemId":"STX002",
"title":"Noble Black",
"category":"Black", etc.
}
etc.
我还有一个形式表单,在顶部字段中使用ui-select
来查找库中的所有值,选择其中一个(我将称之为Item
),然后填充表单中的其余字段使用Items
属性,然后将表单提交给Catalogue
模型。
我遇到的问题是我无法从其他字段中引用Item
的属性。我尝试使用expressionProperties
,但只能提取valueProp
值(唯一ID),但我在Item.title,Item.category等之后。
以下代码:
{
//This is form fields for creating a new Catalogue entry
key: 'libraryId',
type: 'ui-select',
templateOptions: {
label: gettextCatalog.getString('Search Library'),
options: [],
valueProp: 'itemId',
itemTitle: 'title',
itemCategory: 'category',
labelProp: 'title',
focus: true,
placeholder: 'Start typing keywords..'
},
controller: function ($scope) {
getLibrary().then(function(data){
$scope.options.templateOptions.options = data;
return data;
});
}
}
{
key: 'title',
type: 'input',
templateOptions: {
label: gettextCatalog.getString('Name'),
required: true
},
expressionProperties : {
//This is what i'm trying to achieve but doesn't work
'templateOptions.placeholder' : 'model.libraryId.itemTitle'
}
},