2016-04-25 70 views
0

我正在离子/角JS中制作购物应用程序。我想从我的子类别页面传递一个值(我的子类别的名称)到详细信息页面。这里是我的代码:在html文件之间传递值

Subcategory.html

<div> 
<ion-view view-title="SubCategories"> 
<ion-list> 
<ion-item class="ionitems" ng-repeat="sublist in subCategories" href="#/app/playlists/{{sublist.id}}/details"> 
{{sublist.name}} 

<!--<a ng-click="godetails();">{{sublist.name}}<a/>--> 
</ion-item> 
</ion-list> 
</div> 

详细信息页面:

<ion-content> 
    <h4>Product Details</h4> 
    <ion-view view-title="playlists"> 
     <ion-content ng-controller="PlaylistCtrl"> 
     <input type="button" ng-click="addToCart();" value="add cart" /> 
     </ion-content> 

添加到购物车控制器:

.controller('detailsCtrl', function($scope){ 

     var arr = []; 

     $scope.addToCart = function() { 
     arr.push(""); 

我需要将子类别名称从子类别页面传递到详细信息页面并添加到购物车控制器。我怎样才能做到这一点?

+0

它有很多方法可以做到这一点,使用$ rootScope,路由器PARAM等。 –

回答

1

,您可以发送的子类别值为URL Parameters,请参阅this link

由此您必须创建一个state的详细信息页面

例如

.state('app.detail', { 
    url: "/product/:productId", 
    templateUrl: 'detail.html', 
    controller: 'detailsCtrl' 
}) 
detailsCtrl控制器

,您将获得价值,即产品ID,从这个你可以得到的细节,展示给详细信息页面中控制器

.controller('detailsCtrl', function($scope,$stateParam){ 
    var productId = $stateParam.productId; 
    //now you get product id , get the detail and show on detail page 
    }); 

您传递网址参数的代码为

<ion-view view-title="SubCategories"> 
<ion-list> 
<ion-item class="ionitems" ng-repeat="sublist in subCategories"> 
<a ui-sref="detail({productId: sublist.productId})">{{sublist.name}}<a/> 
</ion-item> 
</ion-list> 

+0

与对象键 –

+0

这个工作取代的productId在视图文件!谢谢。 – Gunner

0

你必须创建一个服务,才能获取和设置数据,这样

myApp.service('myService', function() { 
     var data = ""; 
     return { 
     getData: function() { 
      return data; 
     }, 
     setData: function(subcategoryName) { 
      data = subcategoryName; 
     } 
     }; 
    }); 

,并注入在控制器的服务来获得字幕

.controller('detailsCtrl', function($scope,myService){ 

    var arr = []; 
// use myService to get the data 

var subcategory_name = myService.getData(); 

    $scope.addToCart = function() { 
    arr.push("");