我有一个使用嵌套在ng-repeat中的模板的指令。我对此指令中的项目使用不同的主题(只是不同的类名称),用户在更改整个网站的主题时可以更改这些主题。当用户进行主题更改时,此功能有时不起作用...除非他们在某些时候刷新页面,在这种情况下,当它们进行主题更改时它始终有效。这是一种奇怪的行为,我甚至不确定从哪里开始排除故障。这是在我的指令模板中设置类的div:
<div class="my-item" ng-class="[ma.getTheme(), ma.getSize()]">
...
</div>
这是指令JS文件中的getTheme()函数:
function getTheme() {
console.log('theme'+ma.item.themeId);
return "theme" + ma.item.themeId;
}
以下是控制器JS文件中用于更改主题的函数:
function changeTemplate(selectedTemplate) {
...
for (var i = 0; i < ma.myItems.length; i++) {
var item= ma.myItems[i];
item.themeId = classes[index];
var nextIndex = index + 1;
if (nextIndex === classes.length) {
index = 0;
} else {
index++;
}
}
}
其中classes只是一个不同类号的数组,它们从getTheme()函数附加到主题类名。
正如我上面所说的那样,这只会在首次加载页面时失败(当时甚至不总是)。刷新页面时,它始终有效。
页面刷新会导致这种情况发生什么变化?
TIA
答案 0 :(得分:1)
这对我来说是一种竞争条件。就像您将内容分配给ajax请求返回的内容一样,有时请求会及时完成,有时则不会。我希望它能更可靠地刷新,因为ajax请求已被缓存,因此解析得更快。