AngularJs。了解不同控制器中的ng-model

时间:2015-04-16 11:04:58

标签: angularjs ng-controller

为什么如果您在评级值的面板上选择,然后更改模型和字段值选择。但如果相反,选择选择,那么面板评级上的重复值是不是会发生?

Html代码:

 <select name="post[vote][cinema]" ng-model="cinema" ng-change="set(cinema)">
 <p class="dash ng-isolate-scope ng-valid ng-dirty" ng-mouseleave="reset()" 
    tabindex="0" role="slider" aria-valuemin="0" aria-valuemax="10" 
    aria-valuenow="4" ng-model="cinema" max="max">
      <a ng-repeat="r in range track by $index" ng-mouseenter="enter($index + 1)" 
          ng-click="rate($index + 1)" ng-class="{...}" class="ng-scope"></a>

小提琴:http://jsfiddle.net/smtncL3q/1/

2 个答案:

答案 0 :(得分:1)

我设法通过在ngModel指令范围内注入rating并为值指定监视来实现此目的。

scope: {
    ngModel: '='
},

...然后在链接功能中:

scope.$watch('ngModel', function(value) {
    scope.value = value;            
});

Updated Fiddle

答案 1 :(得分:0)

我很难掌握你的JSFiddle究竟是如何运作的,但我建议你在$parsers上使用$formattersngModel。单击评级时,解析器功能会更新模型,格式化程序功能会在select更新模型时更新评级视图值。

您的解决方案可以使用更多hackish代码修复,但不会提高可读性。