ionic中列表项增加和删除的实现

在项目中遇到表单似的页面,需要进行增加一行和减少一行的操作,例如:
这里写图片描述
要实现可以选中商品,以及对商品的信息列表进行显示与否的操作
html代码如下:

<div class="chanpinxiangqing">
    <div class="item item-divider">产品明细</div>
    <div class="chanpinxiangqing" ng-repeat="master in masters">
        <div class="item item-divider">
            <div class="" ng-click="selectorOne($index)" style="display: inline-block;width: 50%;">
                <div class="chioceHook sPround">
                    <div class="ion-checkmark-round ng-hide" ng-show="master.checked" style=""></div>
                </div>
                <span style="margin-left:20px;">产品</span>
            </div>
            <div ng-click="upOrdown($index);" ng-class="{true:'up',false:'upDown'}[master.updown]"></div>
        </div>

        <ul class="rzInfo" ng-show="master.up">
            <li class="row">
                <span class="col-xs-5"><!--产品类型-->{{master.chanpinType}}</span>
                <select class="" ng-model="myselectType" mobiscroll-select="settings" mobiscroll-instance="demo">
                    <option value="0">请选择</option>
                    <option value="1">中药</option>
                    <option value="2">西药</option>
                </select>
            </li>
            <li class="row">
                <span class="col-xs-5"><!--产品名称-->{{master.chanpinName}}</span>
                <select class="" ng-model="myselectName" placeholder="请选择" mobiscroll-select="settings" mobiscroll-instance="demo">
                    <option value="0">请选择</option>
                    <option value="1">注射剂</option>
                    <option value="2">麻醉剂</option>
                </select>
            </li>
            <li class="row">
                <span class="col-xs-5"><!--规格-->{{master.guige}}</span>
                <select class="" ng-model="myselectGuige" placeholder="请选择" mobiscroll-select="settings" mobiscroll-instance="demo">
                    <option value="0">请选择</option>
                    <option value="1">10ml</option>
                    <option value="2">20ml</option>
                </select>
            </li>
            <li class="row">
                <span class="col-xs-5"><!--单位-->{{master.danwei}}</span>
                <input type="text" name="" class="col-xs-8" value="" />
            </li>
            <li class="row">
                <span class="col-xs-5"><!--数量-->{{master.num}}</span>
                <!--<b class="" contenteditable="true" ng-model="dataclean" ></b>-->
                <input type="text" name="" class="col-xs-8" value="" />
            </li>
            <li class="row">
                <span class="col-xs-5"><!--单价(元)-->{{master.price}}</span>
                <input type="text" name="" class="col-xs-8" value="" />
            </li>
            <li class="row">
                <span class="col-xs-5"><!--总价-->{{master.total}}</span>
                <input type="text" name="" readonly class="col-xs-8" value="" />
            </li>
        </ul>
    </div>
</div>

<div class="" style="margin-top: 10px;padding:10px;text-align: right;background: #fff;"><span>合计发货总额:</span></div>
<div class="">
    <div class="btnadd" ng-click="add()">增加</div>
    <div class="btndel" ng-click="delete()">删除</div>
</div>

js代码:

//控制器及服务等
.controller('fhShenQingAddCtrl', function($scope, CONFIG, $ionicSlideBoxDelegate, $rootScope, $http, $ionicPopup, faHuoService, $timeout, $window, loading, tool) {
//产品下的类型名称及规格的选择弹窗设置
    $scope.settings = {
        theme: 'mobiscroll',
        lang: 'zh',
        display: 'center',
        cancelText: '取消',
        setText: '确定',
        onBeforeClose: function(event, inst) {
            if(event.button == "set") {
                $scope.startdate = event.valueText;//获取选择日期
                console.log($scope.startdate)
            } else if(event.button == "cancel") {
                console.log("取消")
            }
        }
    };
    //增加
    $scope.masters= [{'chanpinType':'产品类型',
                    'chanpinName':'产品名称',
                    'guige':'规格',
                    'danwei':'单位',
                    'num':'数量',
                    'price':'单价(元)',
                    'total':'总价',
                    'checked':'true',//选中切换
                    'updown':'true',//下拉内容显示切换
                    'up':'true'//箭头上下切换
                    }];


    $scope.add = function() {
        $scope.cope={'chanpinType':'产品类型',
                    'chanpinName':'产品名称',
                    'guige':'规格',
                    'danwei':'单位',
                    'num':'数量',
                    'price':'单价(元)',
                    'total':'总价',
                    'checked':'true',  //选中切换
                    'updown':'true',   //下拉内容显示切换
                    'up':'true'    //箭头上下切换
                    };
        var bb = angular.copy($scope.cope);
        $scope.masters.push(bb)   
        console.log($scope.masters)
    };
    //删除
    $scope.delete = function() {
        var arr = [];
        angular.forEach($scope.masters,function(item,index){
            if(!item.checked){
                arr.push(item);                 
            }
        })
        //console.log(arr)
        $scope.masters = arr;
    };

    //切换箭头的上下指向这里写代码片
    $scope.upOrdown = function(rowNumber){
        console.log($scope.masters[rowNumber].updown)
        $scope.masters[rowNumber].up = !$scope.masters[rowNumber].up;
        $scope.masters[rowNumber].updown=!$scope.masters[rowNumber].updown;
    };

    //某一行选中
    $scope.selectorOne = function(rowNumber) {
        console.log($scope.masters[rowNumber].checked)
        $scope.masters[rowNumber].checked = !$scope.masters[rowNumber].checked;
    };

})

完成的效果为:
点击前
点击前

点击后
点击后

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Ionic 实现图片预览可以使用 Ionic 的 ion-slides 组件和 ngx-gallery 库。 1. 首先,在终端运行以下命令安装 ngx-gallery 库: ``` npm install @kolkov/ngx-gallery --save ``` 2. 在 app.module.ts 导入 NgxGalleryModule: ```typescript import { NgxGalleryModule } from '@kolkov/ngx-gallery'; @NgModule({ imports: [ // ... NgxGalleryModule ], // ... }) export class AppModule { } ``` 3. 在 HTML 使用 ion-slides 组件,并在其使用 ngx-gallery: ```html <ion-slides pager="true"> <ion-slide *ngFor="let image of images"> <ngx-gallery [options]="galleryOptions" [images]="[image]"></ngx-gallery> </ion-slide> </ion-slides> ``` 4. 在 TypeScript 文件定义图片和 ngx-gallery 的选: ```typescript import { Component } from '@angular/core'; @Component({ selector: 'app-home', templateUrl: 'home.page.html', styleUrls: ['home.page.scss'], }) export class HomePage { images = [ { small: 'https://picsum.photos/id/1018/200/300', medium: 'https://picsum.photos/id/1018/500/750', big: 'https://picsum.photos/id/1018/1200/1800', description: 'Image 1' }, { small: 'https://picsum.photos/id/1015/200/300', medium: 'https://picsum.photos/id/1015/500/750', big: 'https://picsum.photos/id/1015/1200/1800', description: 'Image 2' }, { small: 'https://picsum.photos/id/1019/200/300', medium: 'https://picsum.photos/id/1019/500/750', big: 'https://picsum.photos/id/1019/1200/1800', description: 'Image 3' } ]; galleryOptions = [ { width: '100%', height: 'auto', thumbnailsColumns: 4, imageAnimation: 'slide', preview: false } ]; constructor() {} } ``` 这样,就可以在 Ionic 实现图片预览了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值