AngularJS动态表单,如何在html中将模式组件放置在所需位置
我使用angular schemaform创建了以下模式。但我想把名字放在第一部分,把年龄放在第二部分。请帮我解决这个问题AngularJS动态表单,如何在html中将模式组件放置在所需位置,angularjs,angular-schema-form,Angularjs,Angular Schema Form,我使用angular schemaform创建了以下模式。但我想把名字放在第一部分,把年龄放在第二部分。请帮我解决这个问题 $scope.schema={ 类型:“对象”, 特性:{ “姓名”:{ “类型”:“字符串”, “标题”:“名称”, “必需”:true }, “年龄”:{ “类型”:“编号”, “头衔”:“年龄” } } }; $scope.form=[ "*", { 键入:“提交”, 标题:“保存” } ]; 您可以使用$scope.form选项更改显示顺序 $scope.form
$scope.schema={
类型:“对象”,
特性:{
“姓名”:{
“类型”:“字符串”,
“标题”:“名称”,
“必需”:true
},
“年龄”:{
“类型”:“编号”,
“头衔”:“年龄”
}
}
};
$scope.form=[
"*",
{
键入:“提交”,
标题:“保存”
}
];代码>
您可以使用$scope.form
选项更改显示顺序
$scope.form = [{
key : 'age'
},
{
key : 'name'
},
{
type : "submit",
title : "Save"
}];
我希望,这将解决您的问题根据我,您希望这样做
<div ng-repeat="value in schema.properties">
<div id="1">
<input type="text" placeholder="{{value.name.title}}" />
</div>
<div id="2">
<input type="Number" value='{{value.age.type}}'/>
</div>
</div>
播放此Plunker片段:
关键行在index.html
:
的
标记中。最好将每个模式/表单作为一个整体来设计,以保持UI的一致性,而不是两个div
确保在模块中包含正确的依赖项
下面是app.js
的外观:
var app = angular.module('plunker', ['ngSanitize', 'schemaForm']);
app.controller('MainCtrl', function($scope) {
$scope.schema = {
"type": "object",
"properties": {
"name": {
"type": "string",
"title": "Name",
"required": true
},
"age": {
"type": "number",
"title": "Age"
}
}
};
$scope.form = [
"*", {
type: "submit",
title: "save"
}
];
$scope.model = {};
});
我是ASF项目的工作人员之一。这里有三种方法
正如上面提到的,一种方法是制作定制模板(或者我们称之为装饰器)
第二个是使用实验功能(可以很好地工作)
第三种方法有点老练,但很快就能做到。即使用相同的模式和模型运行多个ASF实例,但拆分表单定义
JS(简体):
html应该是这样的:
<div id="div1">
<form sf-schema="schema" sf-form="formOne" sf-model="model"></form>
</div>
<div id="div2">
<form sf-schema="schema" sf-form="formTwo" sf-model="model"></form>
</div>
否。我正在使用json生成动态表单。基于json生成文本框下拉列表等数据组件。我想将这些组件放置在一些预定义的div中。在我的问题中,name字段应该放在div1中,age应该放在div2中。实际上,你的问题有点让人困惑。顺便说一句,name字段放在id'1'中,不,它没有。我不想让它的值进入div1。我想这样,这意味着你需要输入type='text'和Name字段,年龄和数字,对吗?是的。整个元素应该放在div中,而不仅仅是valueThank。但我知道如何改变顺序。我想知道,如何将name字段放在div1中,将age字段放在div2@prasadparab我能知道,你为什么要这么做。angular shcema表单没有提供任何选项,我们可以尝试一些解决方法,例如angular-schema-form的定制附加组件。很抱歉,我无法共享。您可以将其视为必需品。@ PrasADPARB正在寻找动态地或静态地生成这些标签的标签。我很困惑,angular schema表单根据模式定义生成id。@prasadparab angular schema表单将使用bootstrap-decorator.js生成元素,如果检查生成的元素,则bootstrap decorator标记将与表单定义中的相同。我不认为,你可以在这两者之间插入一个元素,如果你愿意,你可以更改模板。谢谢你的帮助。是的,作为一个整体保留很好,但是,我需要它,就像我提到的那样。姓名和年龄在两个不同的分区。你能帮我一下吗?我在下面的plnkr链接中尝试了第二个选项,但它不起作用。我在这里遗漏了什么。看起来jquery是在angular之后加载的,在angular之前加载使其工作。(这太糟糕了,应该会给你一些警告或其他东西)@Dervisevic:-我尝试了从你指定的文档中手动插入字段,但它不起作用。你能分享一下工作实例吗。提前感谢:)@prasadparab请查看此plnkr链接。这就是你所需要的,我想。@Dervesvic第二个选项对我来说是完美的,但它在我的Ionic应用程序中不起作用,我在上进行了测试,效果很好。知道为什么吗?我应该提出我自己的问题。
<div id="div1">
<form sf-schema="schema" sf-form="formOne" sf-model="model"></form>
</div>
<div id="div2">
<form sf-schema="schema" sf-form="formTwo" sf-model="model"></form>
</div>