2015-05-06 159 views
1

我正在构建一个角度测验,我试图根据测验是否已经开始显示一个按钮。用户在登录时进入他们的用户页面,当他们没有开始测验时,我想显示“开始测验”按钮。在测验中,他们可以访问他们的用户页面,但只有“简历测验”应该可见。ng-hide ng-show不能正常工作

作为我的最后一项测试,我把它弄糊涂了。在我的控制,我特别声明:

vm.started = false; 

然后在HTML文件我用这样的逻辑:

<button ng-hide"reg.started" ng-click="reg.startQuiz()">Start quiz</button> 
    <button ng-show"reg.started" ng-click="reg.resumeQuiz()">Resume quiz</button> 

所以,你会认为,因为开始时设置为false,只有开始测验按钮会显示向上。但是,这两个按钮不断显示,我似乎无法修复它。当我在vm.started上做一个console.log时,它说错误。 ng-click工作正常。使用函数(返回布尔值)也不起作用。

+1

它应该不是'''按钮ng-hide“vm.started”>开始测验'''。如果你使用console.log(reg.started)'''会发生什么? –

+0

我使用controllerAs语法,所以reg.started会返回undefined。 vm.started == reg.started在视图中。 – idontknow

+0

啊,我不熟悉控制器,现在就读一下吧。只是认为这可能是原因@idontknow –

回答

2

你确定你没有忘记“=”吗?

<button ng-hide="reg.started" ng-click="reg.startQuiz()">Start quiz</button> 
<button ng-show="reg.started" ng-click="reg.resumeQuiz()">Resume quiz</button> 
+0

哇,这样的白痴,令人难以置信。是的,我忘了=,叹气。它的工作现在正常 – idontknow

+0

大声笑,别担心,它碰巧给大家! ;) 祝一切顺利!!! –