我试图在不使用控制器的情况下构建纯粹在角度模板文件中的星级排名,我有以下代码失败,我可以使用控制器(调用setRanking方法ng-click)来构建它但是我想要理解以下代码无效的原因。用户应该能够点击星星,并且应突出显示所选星星的所有星星。
<div class="item" ng-init="user_rating = 0">
<i
ng-repeat="star in [1,2,3,4,5]"
ng-class="(star>user_rating) && 'ion-ios-star-outline' || 'ion-ios-star'"
ng-click="user_rating = star"></i>
<h3>Starts: {{user_rating}} </h3>
</div>
答案 0 :(得分:0)
您需要对 rules: {
password_confirm: {
equalTo: 'input[name=password]'
},
username: {
remote: {
url: 'action/check/',
type: 'POST'
}
}
}
的此代码进行更改,如下所示 -
'ng-class'
我希望这可以帮到你......
答案 1 :(得分:0)
我认为问题在于user_rating
的范围(因为它没有得到更新)。
由于每个ng-repeat
都会创建隔离范围,因此您更新user_rating
的方式是创建与user_rating
的本地范围相关联的ng-repeat
的本地副本。
要修复它,您可以替换代码
ng-init="user_rating = 0"
带
ng-init="r={}; r.user_rating = 0;"
请在user_rating
的任何地方r.user_rating
引用user_rating
。
使用ng-class的正确方法是@Shailendra在他的回答中提到的。谢谢!