Я хочу переопределить объект json в зависимости от выбранного значения dropDown

0

Это мой html-код

<select style="width:100px;" data-nodrag ng-model="conditions" ng-change="changingCondition(this)">
    <option value="and">and</option>
    <option value="or">or</option>
</select>

и это мой код ng-change который я пробовал, но он не работает, если у меня есть несколько "и", это изменит их все на "или", этого не должно произойти

$scope.changingCondition = function (scope) {
    var cond = $scope.conditions
    //var jsonstr = JSON.stringify($scope.data);
    //var new_jsonstr = jsonstr.replace("and", "or");

    var obj = JSON.parse($scope.data)[0];
    obj.cond = obj.and;
    delete obj.cond;
}

Это мой jsonObject

    [{
        "and": [{
            "fieldName": "",
                "value": "",
                "condition": ""
        }]
    }];

Если выбрано "или" jSonObject должен превышать значение "или" от "и", и если я изменил его на "и" он должен быть "и"

  • 0
    Непонятно, что вы пытаетесь сделать. Вы хотите изменить and свойство or когда "или" выбрано и наоборот?
  • 0
    @Michelem да, я хочу изменить или если выбранное значение или
Теги:
arrays

2 ответа

1
Лучший ответ

Все еще не может понять, что именно вы хотите, но попробуйте это:

JSFiddle

HTML:

<div ng-app="myApp" ng-controller="myCtrl">
    <select style="width:100px;" data-nodrag ng-model="conditions" ng-change="changingCondition()">
        <option value="and">and</option>
        <option value="or">or</option>
    </select>
    {{data}}
</div>

JS:

angular.module('myApp', [])
    .controller('myCtrl', function ($scope) {
    $scope.changingCondition = function () {
        $scope.data = [{
            "and": [{
                "fieldName": "",
                    "value": "",
                    "condition": ""
            }]
        }];

        if ($scope.conditions === 'or') {
            $scope.data[0].or = $scope.data[0].and;
            delete $scope.data[0].and;
        }
    }
});
  • 0
    Спасибо, это Ват, я хотел именно :)
  • 0
    Хороший .. Можете ли вы помочь мне в этом PLS stackoverflow.com/q/31560652/5071852
0

Из вашего вопроса не совсем ясно, чего вы хотите достичь, но заметная проблема заключается в том, что ваш код устанавливает литеральное свойство "cond" вместо значения $scope.conditions. Вам нужно получить доступ к свойству с помощью obj[cond]. Вот пример Plunkr.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню