获得星级评定中的不同值

时间:2016-02-10 22:28:53

标签: javascript angularjs ionic-framework

你好吗?我在IONIC实施评级,尽管这基本上是有角度的。我想获得每个类别的价值。如果我符合规格,那就是动物"我想得到我选择的价值。如果我有资格"汽车"我想获得我选择的价值。

我的问题是我总是为两个类别获得相同的值。我能做什么?。我想知道什么是最好的解决方案,因为我认为创建动态代码并且不想在n个类别中重复代码。

http://plnkr.co/edit/1PomwzklGD2Y8esbsnxT?p=preview

HTML

What do you think about the animals?
<ionic-ratings ratingsobj='ratingsObject'></ionic-ratings>
What do you think about the cars??
<ionic-ratings ratingsobj='ratingsObject'></ionic-ratings>

JAVASCRIPT

$scope.ratingsObject = {
 iconOn: 'ion-ios-star', //Optional
 iconOff: 'ion-ios-star-outline',  //Optional
 iconOnColor: 'rgb(200, 200, 100)',  //Optional
 iconOffColor: 'rgb(200, 100, 100)', //Optional
 rating: 4,  //Optional
 minRating: 1, //Optional
 readOnly:false, //Optional
 callback: function(rating) {  //Mandatory    
 $scope.ratingsCallback(rating);
 }
};

$scope.ratingsCallback = function(rating) {
 $scope.cars=rating;
 $scope.animals=rating;
 console.log('Selected rating is : ', rating);

 //is the same value :(
 console.log("animals: "+$scope.animals);
 console.log("cars: "+$scope.cars);
};

1 个答案:

答案 0 :(得分:0)

我建议使用其他离子评级库,例如this one,可以使用ng-model。因此,您可以将ng-repeat与数组一起用作模型,然后将<rating>指令绑定到用户设置评级时自动更新的属性。

以下是适合使用该lib并使其动态化的示例:

&#13;
&#13;
angular.module('ionicApp', ['ionic', 'ionic.rating'])

.controller('MyCtrl', function($scope) {
  $scope.myTitle = 'IONIC RATINGS DEMO';

  $scope.categories = [{
    name: "animals",
    question: "What do you think about the animals?",
    rating: 0
  }, {
    name: "cars",
    question: "What do you think about the cars?",
    rating: 0
  }, {
    name: "flowers",
    question: "What do you think about the flowers?",
    rating: 0
  }];

  $scope.rating = {};
  $scope.rating.max = 5;

});
&#13;
<!DOCTYPE html>
<html ng-app="ionicApp">
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="initial-scale=1, maximum-scale=1, user-scalable=no, width=device-width">
  <link href="http://code.ionicframework.com/nightly/css/ionic.min.css" rel="stylesheet">
  <script src="http://code.ionicframework.com/nightly/js/ionic.bundle.min.js"></script>
  <script src="https://rawgit.com/fraserxu/ionic-rating/master/ionic-rating.js"></script>
  <link rel="stylesheet" href="https://rawgit.com/fraserxu/ionic-rating/master/ionic-rating.css">
  <script src="script.js"></script>
</head>

<body ng-controller="MyCtrl">

  <ion-view>
    <h1 class="text-center">{{myTitle}}</h1>
    <div class="list">
      <div class="item item-button-right" ng-repeat="category in categories">
        {{category.question}}
        <rating ng-model="category.rating" max="rating.max"></rating>
      </div>
    </div>

    <pre>categories = {{categories|json}}</pre>
  </ion-view>
</body>

</html>
&#13;
&#13;
&#13;

:在<pre>标签中显示的模型仅用于调试和演示。