AngularJS Modyfing json with ng-model

时间:2016-12-16 13:40:12

标签: javascript angularjs json

我有一个简单的JSON,例如:

<script>
var theStatus = {};
function whatToShow(myGroup) {
    if (typeof theStatus[myGroup] === 'undefined' || theStatus[myGroup] == 0) {
        theStatus[myGroup]=1;
    }
    else {
        theStatus[myGroup]=0;    
    }

    if (theStatus[myGroup]==0) {
        document.getElementById(myGroup).style.display = 'none';
    }
    else {
        document.getElementById(myGroup).style.display = 'inline';
    }
        //XMLHttpRequest here
        //loading in document.getElementById(myGroup)
}
</script>

我想将它显示为一棵树。 要做到这一点,我正在使用这样的东西

{
  "Object 0": {}
}

Howether我希望能够更改密钥的名称和值,所以我添加

<span>{{key}}</span> // Object 0
<span>{{value}}</span> // {}
<ul>
    <li ng-repeat="(key, value) in items" ng-include="'views/itemList.html'"></li>
</ul>

在我的模板中,但它不能正常工作。我无法改变它的内容,因为一旦我改变它不再是对象 我也不知道如何在不创建新项目的情况下将密钥的名称从对象0更改为其他任何名称。任何想法?

还有另一种情况 我有。

<input ng-model=”items[key]”>

我希望能够将这个$ scope.test放入我的“对象0”中以便它生成

$scope.test = {"test": "test1"}

1 个答案:

答案 0 :(得分:0)

对于您的第二个要求,您可以简单地执行此操作

$scope.test = {"test": "test1"}
$scope.items = {
  "Object 0": $scope.test
}

它会给你

object {
  Object 0 : Object{
                    test:"test1"
                   }
       }

您无法从视图中更改密钥。实际上,当您在ng-model中使用键设置对象时,它会为该元素分配该键的值。它从视图到控制器也是如此。如果从视图中更改此元素的值,它将更新分配给模型的键的对象值。