ng-class 在刷新页面之前并不总是使用动态内容

ng-class doesn't always work with dynamic content until page is refreshed

我有一个使用嵌套在 ng-repeat 中的模板的指令。我为该指令上的项目使用了不同的主题(只是不同的 class 名称),用户可以在更改整个站点的主题时更改这些主题。当用户更改主题时,此功能有时不起作用......除非他们在某个时候刷新了页面,在这种情况下,当他们更改主题时它总是有效。这是如此奇怪的行为,我什至不确定从哪里开始进行故障排除。这是 div,其中 class 设置在我的指令模板中:

<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 只是一组不同的 class 数字,这些数字从 getTheme() 函数附加到主题 class 名称。

正如我上面所说,这只会在页面首次加载时失败(甚至并非总是如此)。当页面刷新时,它总是有效。

页面刷新会发生什么变化才能使它起作用?

TIA

对我来说这看起来像是竞争条件。就像您将内容分配给 ajax 请求返回的内容一样,有时请求会及时完成,有时则不会。我希望它在刷新时更可靠,因为 ajax 请求已被缓存,因此解析速度更快。