我想根据dropDown选择值覆盖json对象

时间:2015-07-22 07:33:32

标签: asp.net .net arrays json angularjs

这是我的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代码,但它不起作用,如果我有多个&#34;&#34;&#39;它会将所有这些代码更改为&#34;或&#34;,这不应该发生

$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": ""
        }]
    }];

如果选择&#34;或&#34; jSonObject应该覆盖到&#34;或&#34;来自&#34;和&#34;如果我把它改成&#34;和&#34;它应该是&#34;和&#34;

2 个答案:

答案 0 :(得分: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;
        }
    }
});

答案 1 :(得分:0)

您的问题并不完全清楚您希望实现的目标,但明显的问题是您的代码设置了文字属性function loadVid(vid) { jwplayer("vplayer").load([{file: vid}]); } loadVid('playlist.xml'); 而不是"cond"的值。您需要使用$scope.conditions访问该媒体资源。以下是Plunkr的示例。