我正在使用Angular Material Design。我有一个包含自动完成术语集的字段。这个列表是通过api电话提取的。
但是,如果用户决定创建一个新标题(芯片),我使用md-transform-chip =" vm.transformChip($ chip)"。
现在,当找到新芯片时,我想通过api调用创建作业标题,然后返回响应并将其作为新芯片。
但是,我发现,如果我进行api通话并成功回调,则返回芯片,它总是一个空芯片。如果我没有拨打api电话并返回新芯片,它就会正确显示。
实施例。它不起作用:
function transformChip(chip) {
// If it is an object, it's already a known chip
if (angular.isObject(chip)) {
return chip;
}
api.jobTitles.create.save({'site_id': vm.site_id}, { name: chip },
// Success
function (response) {
vm.jobTitles.push(response);
return { name: response.name, _id: response._id}
},
// Error
function (response) {
}
);
}
实施例。从Angular Material Design的网站上撤下来,它可以在那里运作。
function transformChip(chip) {
// If it is an object, it's already a known chip
if (angular.isObject(chip)) {
return chip;
}
return { name: chip, type: 'new' }
}
我的目标是在提交表单之前创建新芯片,并将新芯片添加到作业标题数组中,这样,任何新提交的内容都将具有用于预先输入的芯片。
感谢您的帮助。
答案 0 :(得分:0)
在推送新作业标题后,您只需返回null 。 您可能希望放置一些加载元素来禁用输入,直到请求结束,因为如果请求需要时间,用户将看到任何内容,直到它结束。我宁愿只是禁用输入,直到请求结束并且元素已成功推送到范围内。
如果您检查文档中的属性表,那么