【问题标题】:Dynamically add the values in titanium tableview动态添加钛表视图中的值
【发布时间】:2015-06-21 10:24:29
【问题描述】:

我在第一页列出了类别,在第二页列出了子类别,在第三页列出了产品。现在我已将产品添加到购物车。现在将再次返回类别页面并将产品添加到购物车。如果我们需要查看购物车中的商品,我们可以声明一个全局数组[],并将数据添加到该数组[]。但是在这里,如果我添加了 3 个项目,则表示最近添加的最后一个项目,该项目仅显示在购物车列表项目页面中。但我想显示添加的 3 个项目。请检查我的代码并找出我的问题。

Ti.App.data = [];
data=[
            {title:productlist_product,
            price:productlist_product_price,
            quantity:selectedqty},
         ];
var myObjectString = JSON.stringify(data);

编辑: Ti.API.info("DATA-length"+" "+data.length);

这里的值是 1。但是在有 3 个产品的购物车页面中。我需要将这 3 个产品的价值添加到数据 []。你能给我解决方案吗?

编辑:

现在我已经使用下面的代码在数组 [] 中动态添加了值。

 data = [
{title:productlist_product,
price:productlist_product_price,
image:productlist_product_image,
quantity:selectedqty},
];

// append new value to the array
 data.push({title:productlist_product,
            price:productlist_product_price,
            image:productlist_product_image,
            quantity:selectedqty});

     // display all values
 for (var i = 0; i < data.length; i++) {
 console.log(data[i]);
   }
   var myObjectString = JSON.stringify(data);

  Ti.API.info("PRICE"+" "+myObjectString);

现在我添加了不同数量的相同产品意味着该产品是单独列出的。但是,如果我添加了不同数量的相同产品,则意味着希望单次在列表中列出产品名称。但是数量需要在产品上更新。

例如: 如果我在购物车中添加了 2 个数量的“Android 开发”产品。我将再次添加具有 4 个数量的“Android 开发”产品的相同产品意味着列表正在显示:

 PRICE [{"title":"Android development","quantity":2},
        {"title":"Android development","quantity":4}]

但我想看起来像下面:

 PRICE [{"title":"Android development","quantity":6}]

【问题讨论】:

  • 请多解释一下应用流程,你有三个视图,第一个是类别,当用户选择一个类别时,应用导航到包含子类别的第二个视图,与产品相同,我说的对吗?
  • @Zabady 是的,你是对的。

标签: javascript iphone arraylist titanium tableview


【解决方案1】:

现在我已经使用下面的代码在数组 [] 中动态添加了值。

data = [
{title:productlist_product,
price:productlist_product_price,
image:productlist_product_image,
quantity:selectedqty},
];

// append new value to the array
 data.push({title:productlist_product,
            price:productlist_product_price,
            image:productlist_product_image,
            quantity:selectedqty});

     // display all values
 for (var i = 0; i < data.length; i++) {
 console.log(data[i]);
   }
   var myObjectString = JSON.stringify(data);

  Ti.API.info("PRICE"+" "+myObjectString);

【讨论】:

    【解决方案2】:

    试试这个,

    var productData = [
                        {Product_Name: 'Apples',Product_Price :50,Product_qty :5}, 
                        {Product_Name: 'Banana',Product_Price :40,Product_qty :5},
                        {Product_Name: 'Carrots',Product_Price :90,Product_qty :5}
                    ];
    var tableData = [];
    for(var i=0;i<data.length;i++){
        var tableRow = Ti.UI.createTableViewRow({
            title :"Name :"+data[i].Product_Name+"      Price : "+data[i].Product_Price,
        });
        tableData.push(tableRow);
    }
    
    var tableView = Ti.UI.createTableView({
        data: tableData
    });
    win.add(tableView);
    

    【讨论】:

    • 我总共添加了 3 个产品...但是最后一个产品只显示在 tableview 中。我有 3 个视图。一个用于类别,当用户选择一个类别时,应用程序导航到第二个包含子类别且与产品相同的视图。首先我添加了一个产品然后我将返回类别页面然后将添加另外 2 个产品意味着最后一个产品仅显示在用户最近添加的列表中。但我需要显示所有添加的产品。你能帮帮我吗?
    • 我认为你没有正确更新你的全局数组,每当你添加或删除一个项目时更新你的 Ti.App.data 数组。
    • 如何更新全局数组?如果我单击按钮,产品详细信息将添加到数据 []。我将再次返回类别页面,如果选择了类别,它将进入子类别页面,如果选择了子类别,它将进入产品页面。在这里我们将选择产品并单击按钮表示当前产品详细信息已添加到数据[]。但是我已经声明这个数据[]是全局唯一的......那么为什么所有的值都没有添加到数据[]上。最后选择的产品价值只添加到数据[]上。你能通过代码解释一下吗?数据[]
    【解决方案3】:

    您必须将数据数组分配给表格的 data 属性才能将这些对象显示为 tableView 行。比方说:

    Ti.UI.backgroundColor = 'white';
    var win = Ti.UI.createWindow();
    var tableData = [ {title: 'Apples'}, {title: 'Bananas'}, {title: 'Carrots'}, {title: 'Potatoes'} ];
    
    var table = Ti.UI.createTableView({
    data: tableData});
    win.add(table);
    win.open();
    

    或者,您可能还想使用 table.setData 添加行 customTableView.setData(data);

    var customTableView = Titanium.UI.createTableView({ BackgroundColor:'White', style: Titanium.UI.iPhone.TableViewStyle.GROUPED, });
    data.push({title:productlist_product, price: productlist_product_price,quantity: selectedqty});
    customTableView.data = data;
    

    【讨论】:

    • 嗨,你能检查我编辑的问题并给我一个解决方案吗?这正是我所遵循和需要的......
    • 您介意分享一个可运行的测试用例来帮助排除故障吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-06-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多