angular build一个数组

时间:2015-07-25 18:31:50

标签: javascript angularjs ionic-framework

我有一个应用程序,每当用户点击一个标签时,我想要点击产品的ID并将其放入数组中。

这是我的观点

<ion-view view-title='Products'>
<ion-content>
    <div class="row">
        <div class="col col-25" ng-repeat="row in products">
            <a href="#/main/tickets/{{row.productId}}" class="button button-block button-light">{{row.product}}<br/><small>{{row.price | currency}}</small></a>
        </div>
    </div>
</ion-content>

你可以看到我得到了产品的row.productId。现在在我的app.js中我有这个。

这是我的app.js

.state('main.tickets', {
            url: '/tickets/:productId',
            views: {
                'tickets': {
                    templateUrl: 'templates/tickets.html',
                    controller:  'ticketsController'
                }
            }
        })

我将productId作为url参数。

这是我的控制者。

.controller('ticketsController', function($scope, $localStorage, $stateParams){

var tickets = [];

tickets.push($stateParams.productId);

console.log(tickets);

})

ticket数组假设获取正在运行的id,但是每次我点击一个新的productId时,数组值都会重置,因为它会继续点击var ticket声明。我想以某种方式将所有productId存储在票证数组中,但我找不到办法在不重置票证arrray的情况下执行此操作。

1 个答案:

答案 0 :(得分:1)

您的问题是您使用控制器存储票证数组。每次进入故障单页面时,都会创建一个新的控制器,并附加一个新的$ scope。

您的问题的一个简单解决方案是将票证数组存储在将在不同页面上保留的服务中。

<?php
$sql = mysql_query(' MySQL query ... ');
while($row = mysql_fetch_array($sql)) {
    echo '<p>'.$row['username']'<br>';
    echo $row['message'].'<br></p>';
}
?>