Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
AngularJS动态表单,如何在html中将模式组件放置在所需位置_Angularjs_Angular Schema Form - Fatal编程技术网

AngularJS动态表单,如何在html中将模式组件放置在所需位置

AngularJS动态表单,如何在html中将模式组件放置在所需位置,angularjs,angular-schema-form,Angularjs,Angular Schema Form,我使用angular schemaform创建了以下模式。但我想把名字放在第一部分,把年龄放在第二部分。请帮我解决这个问题 $scope.schema={ 类型:“对象”, 特性:{ “姓名”:{ “类型”:“字符串”, “标题”:“名称”, “必需”:true }, “年龄”:{ “类型”:“编号”, “头衔”:“年龄” } } }; $scope.form=[ "*", { 键入:“提交”, 标题:“保存” } ]; 您可以使用$scope.form选项更改显示顺序 $scope.form

我使用angular schemaform创建了以下模式。但我想把名字放在第一部分,把年龄放在第二部分。请帮我解决这个问题

$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>