如何使用AngularJS模型定义*对象键*?
我想构建一个快速工具来定义一个“”如下所示:如何使用AngularJS模型定义*对象键*?,angularjs,Angularjs,我想构建一个快速工具来定义一个“”如下所示: { "type": "object", "properties": { "myFirstProperty": { "type": "integer" } }, "title": "MySchema", "description": "some description" } 请参见此处的预览: 请参见此处的代码: 使
{
"type": "object",
"properties": {
"myFirstProperty": {
"type": "integer"
}
},
"title": "MySchema",
"description": "some description"
}
请参见此处的预览:
请参见此处的代码:
使用一个简单的表单,我可以使用“ng model”属性定义“name”、“description”,但是当涉及到我的模式的“properties”定义时,我遇到了一些麻烦:)
我所做的是:
{
"type": "object",
"properties": {
"h": {},
"ho": {},
"hos": {},
"host": {},
"hostn": {},
"hostna": {},
"hostnam": {},
"hostname": {
"type": "integer"
}
},
"title": "MySchema",
"description": "some description"
}
我知道这种行为是由“$watch”(“myva”,function(a,b){},true);”函数引起的,但是我还可以尝试成功什么呢
谢谢你的帮助 在迭代项之前重置
$scope.schema.properties
:
$scope.$watch(function(){return $scope.newProperties;},function(items,b){
$scope.newSchema.properties = {};
angular.forEach(items, function(obj){
if(angular.isDefined(obj.key)) {
var key = obj.key, type = obj.type, name = obj.name;
$scope.newSchema.properties[key] = {
"name": name,
"type": type
};
}
});
},true);
这是保持
$scope.schema
有序并与$scope.newProperties
同步的最佳方法,请在迭代项目之前重置$scope.schema.properties
:
$scope.$watch(function(){return $scope.newProperties;},function(items,b){
$scope.newSchema.properties = {};
angular.forEach(items, function(obj){
if(angular.isDefined(obj.key)) {
var key = obj.key, type = obj.type, name = obj.name;
$scope.newSchema.properties[key] = {
"name": name,
"type": type
};
}
});
},true);
这是保持
$scope.schema
有序并与$scope.newProperties
同步的最佳方法,但是为什么需要newProperties
?为什么不直接绑定到$scope.schema.properties
并编辑它们呢?如果包含一些其他属性(如默认集),则可以通过不在该默认集中而拥有默认集和过滤器属性。但总的来说,我认为绑定到结果模型要容易得多。我不认为我可以将输入绑定到对象的属性名,对吗?如果我错了,你有什么例子吗?但是为什么你需要新属性
?为什么不直接绑定到$scope.schema.properties
并编辑它们呢?如果包含一些其他属性(如默认集),则可以通过不在该默认集中而拥有默认集和过滤器属性。但总的来说,我认为绑定到结果模型要容易得多。我不认为我可以将输入绑定到对象的属性名,对吗?如果我错了,请举个例子好吗?