【问题标题】:AngularJS Modyfing json with ng-modelAngularJS 用 ng-model 修改 json
【发布时间】:2016-12-16 13:40:11
【问题描述】:

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

{
  "Object 0": {}
}

我想将它显示为一棵树。 为此,我正在使用类似的东西

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

我希望能够更改任一键的名称和值,所以我添加了

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

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

还有一种情况 我有。

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

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

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

【问题讨论】:

  • 你能创建一个 plunkr 吗?

标签: javascript angularjs json


【解决方案1】:

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

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

它会给你

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

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

【讨论】:

  • 我不想硬编码它,因为这个“简单”的 json 可以只是一个具有 100 个值的常规 json,动态地执行它很重要。例如,我得到了 ng-click="pasteValue()" 它应该从 $scope.copiedValue 动态添加值
猜你喜欢
  • 1970-01-01
  • 2018-09-08
  • 2016-03-26
  • 1970-01-01
  • 2017-11-19
  • 1970-01-01
  • 2013-03-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多