使用Ionic将值从ng-repeat传递到AngularJS

时间:2015-11-07 13:40:09

标签: angularjs ionic-framework angularjs-ng-repeat ionic

我是Ionic的新手,所以这可能是一个基本问题。

我有一个包含以下代码的HTML文件:

<ion-item class="item-remove-animate item-icon-right" href="#/editvenue/{{venueItem.id}}" 
  ng-repeat="venueItem in venue track by venueItem.id">
    <h2>{{venueItem.name}}</h2>
    <p>{{venueItem.phone}}</p>      
    <ionic-ratings ratingsobj='rating'></ionic-ratings>
</ion-item>

用于使用自定义指令显示星级。详情请见https://market.ionic.io/plugins/ionicratings。下面是app.js文件中控制器的一部分,其中包含用于生成星星的代码。

    $scope.rating = {
      iconOn: 'ion-ios-star',    
      iconOff: 'ion-ios-star-outline',   
      iconOnColor: 'rgb(255, 215, 0)',  
      iconOffColor:  'rgb(224, 224, 224)',   
      rating: 0,//$scope.venueItem.overallrating, // NEED TO DEFAULT THIS TO A RATING???
      minRating: 0,    
      readOnly: true, // Set to true so user cannot edit rating
      callback: function(rating) {    //Mandatory
        // do nothing as read only stars 
      }
    };

我试图从当前的venueItem变量传递整体值,因为ng-repeat遍历场地列表回到控制器。目标是显示每个场所的星级评分。我试图将评级设置为$ scope.venueItem.overallrating但这不起作用。

1 个答案:

答案 0 :(得分:1)

尝试使用ng-repeat实例

添加评级对象

喜欢这个

<ionic-ratings ratingsobj='venueItem.rating'></ionic-ratings>

指定此对象

rating = {
      iconOn: 'ion-ios-star',    
      iconOff: 'ion-ios-star-outline',   
      iconOnColor: 'rgb(255, 215, 0)',  
      iconOffColor:  'rgb(224, 224, 224)',   
      rating: x.overallrating, // NEED TO DEFAULT THIS TO A RATING???
      minRating: 0,    
      readOnly: true, // Set to true so user cannot edit rating
      callback: function(rating) {    //Mandatory
        // do nothing as read only stars 
      }

列表中的每个对象$scope.venue

喜欢这个

$scope.venue.forEach(function(x){
  x.rating= {
      iconOn: 'ion-ios-star',    
      iconOff: 'ion-ios-star-outline',   
      iconOnColor: 'rgb(255, 215, 0)',  
      iconOffColor:  'rgb(224, 224, 224)',   
      rating: x.overallrating, 
      minRating: 0,    
      readOnly: true, // Set to true so user cannot edit rating
      callback: function(rating) {    //Mandatory
        // do nothing as read only stars 
      }
   }
})