【问题标题】:Angular form with dynamic name are not initializing具有动态名称的角度表单未初始化
【发布时间】:2015-01-21 05:46:00
【问题描述】:

我有一些对象和一个表格。每个对象都应该记住它的表单状态(主要是脏度)。

我正在尝试使用这样的动态名称创建一个表单:

 <form name="selectedObject.form">
    <input type="text" name="name" ng-model="selectedObject.name" required>
 </form>

我的问题是:

  1. 我把第一个表单弄脏了
  2. 更改所选对象
  3. 表单被认为是脏的

我认为对表单使用动态名称会设置一个手表并让它动态重新呈现。 无论如何要这样做?

这是一个模拟问题的 plunkr: http://plnkr.co/edit/NAHVfhCf6RhpJHPGl7El?p=preview

【问题讨论】:

    标签: angularjs forms dynamic


    【解决方案1】:

    因为你想让它工作,我不认为。我还在您的代码中看到了问题,即表单声明。名称是字符串,所以现在您的表单名称始终是文字 selectedObject.form。我认为您应该将其写为 &lt;form name="{{ selectedObject.form }}"&gt; 并为表单使用实际名称而不是您现在分配的 {}

    您可以将isDirty 作为新属性添加到您的objects 并手动切换它。

    $scope.objects = [{
      name: 'Object1',
      type: 'Type1',
      form: 'form1',
      isDirty: false
    },{ 
      name: '',
      type: 'Type2',
      form: 'form2',
      isDirty: false }];
    
    <body ng-controller="MainCtrl">
      <button ng-click="setSelected()">Change selected</button>
      <form name="{{ selectedObject.form }}">
        <input type="text" 
               ng-model="selectedObject.name" 
               ng-change="selectedObject.isDirty = true">
        {{ selectedObject.isDirty }}
      </form>
    </body>
    

    【讨论】:

      猜你喜欢
      • 2014-11-25
      • 2016-04-19
      • 1970-01-01
      • 1970-01-01
      • 2019-04-22
      • 2018-10-05
      • 1970-01-01
      • 2016-09-22
      • 2023-03-11
      相关资源
      最近更新 更多