2016-01-25 103 views
1

我试图做类似

$timeout(function() { 
    if (someCondition === true) { 
    _this.isVariantShowSaving = true; 
    } 
}, 50); 

在控制器(注:我用controllerAs语法保存var _this = this;),其涉及到具有跟随性

一个DOM
class="pricing-info" ng-class="{ 'pricing-info variant-hide-savings' : !expressDealCtrl.isVariantShowSaving }" 

出于某种原因​​已经被彻底消灭,当isVariantShowSaving切换形式虚假由超时真实....

我无法想象是什么问题。思想?

+0

你清楚地告诉它在'ng-class'中被删除。什么是预期的行为? – charlietfl

+0

@charlietfl我不会放弃理解你说的话。 ng-class的意图是当'!expressDealCtrl.isVariantShowSaving'的条件满足时,用'pricing-info variant-hide-savings'覆盖'pricing-info'的默认值。但是,我得到的是删除'定价信息'的默认值,但它无法应用'定价信息变异隐藏储蓄' – Ezeewei

+0

它运作良好,如果我只是将'expressDealCtrl.isVariantShowSaving'设置为真/假遵循流程内控制器脚本,但是一旦我开始以'$ timeout'或其他格式使用它,'ng-click'切换'expressDealCtrl.isVariantShowSaving'也会导致没有新类的缺省类的消失。 – Ezeewei

回答

1

问题不在于$timeout在任何情况下,有需要的两种不同的表现,每个人都应该做的

<div ng-class="{class1 : expression1, class2 : expression2}"> 
    Hello World! 
</div> 

在我的情况expressDealCtrl.isVariantShowSaving! expressDealCtrl.isVariantShowSaving两种表达方式。

*花在这个至少4小时......希望它可以帮助别人:)

干杯!