【发布时间】:2017-05-05 21:23:50
【问题描述】:
我正在使用 angular2,我正在尝试从 *ngFor- 循环内加载的元素获取 .style.width 属性。我想用它来定义一些其他元素的宽度。这应该在页面加载时完成。我不想将宽度存储为我的代码中的某个变量。我想直接从dom中获取。
承诺:
let kistenPromise = new Promise(function(resolve, reject){
let itemListContainer = document.getElementById("itemContainer");
if(itemListContainer.children[0] != undefined){
resolve(itemListContainer.children);
}else{
reject(Error("Promise was not fullfilled!"));
}
}.bind(this));
处理程序:
kistenPromise.then(
function(result){
console.log(result);
}.bind(this), function(err){
console.log(err);
}.bind(this));
html:
<div class="itemFrame" id="itemContainer">
<div class="listStyle" *ngFor="let item of list">{{item}}</div>
</div>
当我像这样使用colde时,它只返回Promise was not fullfilled。
但是,如果我尝试 itemList.children != undefined 并返回 .length,它将返回 0。我错过了什么?
提前致谢!
【问题讨论】:
-
我认为由于其他一些异常,您会收到该错误。您能否在浏览器控制台中发布更多错误行?
-
技术上我没有得到真正的“错误”,我只是得到了
err中的console.log,我从reject得到了没有其他例外。但这对我来说毫无意义。它在 200 毫秒后加载,我已经检查了 dom 是否真的存在。 -
Object { __zone_symbol__error: Error, fileName: Getter, lineNumber: Getter, columnNumber: Getter, message: Getter, name: Getter, stack: Getter, originalStack: Getter, zoneAwareStack: Getter, toString: value( ),还有 3 个……}
标签: javascript html angular promise