所以我打电话给工厂,一切正常后我想重置输入字段的值,正如你在下面的代码中看到的那样,我是手工完成的。
null
我不喜欢这种看起来的方式,但是无法想出解决问题的方法
答案 0 :(得分:2)
我自己重构这段代码的方法:
vm.submitRequest = submitRequest;
/**************/
function submitRequest() {
return requestBook()
.then(bookReceived)
.then(clearController);
}
function requestBook() {
return requestedBooksFactory.requestBook(vm.title, vm.author, vm.link, vm.destination, vm.currentUser, vm.comments);
}
function bookReceived(book) {
vm.requestedBooks.allBooks.push(book);
vm.requestedBooks.header = requestedBooksFactory.requestedText(vm.requestedBooks.allBooks.length);
}
function clearController() {
vm.title = '';
vm.author = '';
vm.link = '';
vm.comments = '';
vm.destination = false;
vm.submitted = false;
}
来源不应该太拉链。它应该是可读和清晰的 不要使用匿名函数来实现长方法 它们是为短迭代器设计的 不要害怕功能名称,他们在这里为你而不是解析器 对于解析器,您将使用混淆器。
但我试着发布你想要的东西:)
function clearController() {
['title', 'author', 'link', 'comments'].forEach(f => {vm[f] = '';});
['destination', 'submitted'].forEach(f => {vm[f] = false;});
}