【问题标题】:I want to update an array inside my JSON with onclick event| AngularJs我想用 onclick 事件更新我的 JSON 中的数组| AngularJs
【发布时间】:2017-04-28 07:23:18
【问题描述】:

这是我的 JSON,我想在每次单击按钮时向数组 product1 中的数组添加一个元素,并且它不应该有限制,添加字段中的值可以是用户定义的。

$scope.tableContent = [
            {
                id: 1,
                sks: 'sk1',
                product1: ['micro m1', 'micro m2'],
                product2: 'prod2'
            },
            {
                id: 2,
                sks: 'sk2',
                product1: ['micro m1', 'micro m2', 'micro m3'],
                product2: 'prod4'
            },
            {
                id: 3,
                sks: 'sk3',
                product1: 'prod5',
                product2: 'prod6'
            }];

将代码添加到 javascript 以使其工作。

        $scope.addMicroM = function () {

         //some code here to add 

        };

这是我的 JSON,我想在单击偶数时向产品 1 的数组或任何其他数组添加一个元素,同样我也想向产品 2 添加相同的元素。

我的html:

  <div class="row" id="{{x.id}}" ng-repeat="x in tableContent">

            <div class="cell" ng-click=openModal(x)> {{x.sks}} </div>
            <div class="cell" ng-click=openModal(x)>
                <div class=cellD ng-repeat=" pika in x.product1">{{pika}}</div>
            <div class="cellD" ng-click="addMicroM()">+</div>


    </div>
    <div class="cell" ng-click=openModal(x)>{{x.product2}}</div>
    <div class="cell" ng-click="addCol($event)">+</div>


</div>
<div class="row">

    <div class=cell ng-click=addRow()>+</div> 

【问题讨论】:

  • 你在尝试什么不适合你?
  • 请指正你的那句朋友,不清楚!
  • 是的 @GiovaniVercauteren 它不工作,让我再次编辑它

标签: javascript html angularjs json


【解决方案1】:
$scope.addMicroM = function(obj, microm) {
    $scope.tableContent.forEach(function(elem){
         if(elem.id == obj.id){
             elem.product1.push(microm);
             if(elem.product2.constructor === Array){
                 elem.product2.push(microm);
             } else{
                var tmpArr = [];
                tmpArr.push(elem.product2);
                tmpArr.push(microm);
                elem.product2 = tmpArr;
             }
         }
    });
}

在你的 html 中:

<div class="cellD" ng-click="addMicroM(x, 'micro m3')">+</div>

【讨论】:

    猜你喜欢
    • 2018-01-04
    • 2019-05-20
    • 2020-07-01
    • 2011-04-16
    • 2022-01-04
    • 1970-01-01
    • 1970-01-01
    • 2021-12-29
    • 1970-01-01
    相关资源
    最近更新 更多