Rumah > Soal Jawab > teks badan
Dalam angular1.5.8, apabila saya memanggil antara muka untuk mengembalikan data, jika parameter permintaan kosong atau tidak ditentukan, maka kembalikan, tetapi nilai yang dikembalikan oleh pulangan ini kosong dan tidak mempunyai .then, dan ralat dilaporkan
Kod kes:
onGoodsNameAutoComplate = (value: string) => {
if (!this.clientId || !this.$scope.goodsTypeId) {
return;//这边返回就是空的,没有.then,则会报错
};
return this.goodsService.getList(this.clientId, value, this.$scope.goodsTypeId, 0, 5).then(res => {
return res.data.list;
})
}
Kod ralat:
TypeError: Cannot read property 'then' of undefined
at T (angucomplete-alt.min.js:2)
at $ (angucomplete-alt.min.js:2)
at m.b.onFocusHandler (angucomplete-alt.min.js:2)
at fn (eval at compile (angular.js:14817), <anonymous>:4:233)
at b (angular.js:15906)
at e (angular.js:25885)
at m.$eval (angular.js:17682)
at m.$apply (angular.js:17782)
at HTMLInputElement.<anonymous> (angular.js:25890)
at HTMLInputElement.dispatch (jquery.min.js:3)
Saya mahu berada di sini:
if (!this.clientId || !this.$scope.goodsTypeId) {
return;//这边模拟返回一个空的promise对象,就不会报错了。。。
};
Bagaimana untuk mensimulasikan objek janji kosong? Cari penyelesaiannya! Terima kasih!
大家讲道理2017-05-15 17:16:26
onGoodsNameAutoComplate = (value: string) => {
return $q(function (resolve, reject) {
if (!this.clientId || !this.$scope.goodsTypeId) {
reject('xxx不能为空')
return
}
this.goodsService.getList(this.clientId, value, this.$scope.goodsTypeId, 0, 5).then(
res => {
resolve(res.data.list)
},
() => reject('无法获取到正确的数据'))
}
}
黄舟2017-05-15 17:16:26
Pertama sekali, saya menggunakan ng1+ts di sini Saya perlu memberi perhatian untuk menyuntik $q dahulu
private $q: ng.IQService
angular.module("app").controller("$q",demoController]);
var deferred = this.$q.defer();
if (!this.clientId || !this.$scope.goodsTypeId) {
// deferred.resolve("well done!");
} else {
return this.goodsService.getList(this.clientId, value, this.$scope.goodsTypeId, 0, 5).then(res => {
return res.data.list;
})
}
return deferred.promise;
Saya jumpa cara yang lebih baik