Angularjs 使用递归显示保存ng模型
设置 我有一个显示JSON的前端。可以通过带有保存按钮的ng模型文本区域编辑JSON中的值 它通过递归调用如下对象来实现: 在tree-object-edit.html中:Angularjs 使用递归显示保存ng模型,angularjs,Angularjs,设置 我有一个显示JSON的前端。可以通过带有保存按钮的ng模型文本区域编辑JSON中的值 它通过递归调用如下对象来实现: 在tree-object-edit.html中: ... <h4 class="capitalize">{{ item_key }}: </h4> <textarea rows="2" cols="60" ng-model="item"></textarea> <div ng-if="item.properties"&
...
<h4 class="capitalize">{{ item_key }}: </h4>
<textarea rows="2" cols="60" ng-model="item"></textarea>
<div ng-if="item.properties">
<ul>
<li ng-repeat="(item_key, item) in item.properties" ng-include="'html/tree-object.html'"></li>
</ul>
</div>
问题
单击“保存”不会保存MyDefinition,因为myDefiniton尚未更改。只有一个项目已更改
问题:
当myDefiniton中的项目发生更改时,是否有方法使其更改
更新1
我发现:
<textarea rows="2" cols="60" ng-model="myDefinition[item_key]"></textarea>
是否适用于递归的第一级您正确地注意到,ng model=myDefinition[item_key]parent[key]在我的示例中是有效的,-更改将反映到所需的模型中,如果您在属性级别而不是直接值上进行更改。所以,除了向嵌套模板传递值和键之外,还应该传递父对象,这样就可以创建从实际值到头部的引用链:
角度.模块'app',[].控制器'ctrl',['$scope',函数$scope{
$scope.value={
身份:{
名称:“Max”,
姓:"史密斯",,
},
生日:{
年份:1990年,
月份:2,
日期:{
工作日:“星期五”,
编号:“13”
}
},
第一级:“abc”
}
$scope.isObject=functionvalue{
返回角度值;
}
}]
{{key}}
{{value}json}
只是为了添加一个可能更优雅的解决方案:注意,如果您更新角度递归指令也会成为一件事 angular.module'app',['dotjem.angular.tree']。controller'ctrl',['$scope',function$scope{ $scope.value={ 身份:{ 名称:“Max”, 姓:"史密斯",, }, 生日:{ 年份:1990年, 月份:2, 日期:{ 工作日:“星期五”, 编号:“13” } }, 第一级:“abc” } $scope.isObject=functionvalue{ 返回角度值; } }] {{key}}
$scope.create = function () {
MyDefinition.save($scope.myDefinition,
function () {
});
};
<textarea rows="2" cols="60" ng-model="myDefinition[item_key]"></textarea>