自包含角度模板未正确设置变量

时间:2016-03-18 05:29:54

标签: angularjs

我试图在不使用控制器的情况下构建纯粹在角度模板文件中的星级排名,我有以下代码失败,我可以使用控制器(调用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>

2 个答案:

答案 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在他的回答中提到的。谢谢!