AngularDart ngFor输入更改

时间:2017-12-01 11:27:21

标签: dart angular-dart

任务结构如:<Map<String,String>>[{'_tasknumber':'123'}]

Repository

@Component(
    template: '''
    <div *ngFor="let task of tasks">
                <label for="fileInput">
                    <material-button>
                        Add image 
                    </material-button>
                </label>

          id: {{task['_tasknumber']}}

          <input type="file"
                id="fileInput"
                multiple
                #fileInput
                (change)="uploadFilesForTask(fileInput.files, task['_tasknumber'])"/>
    </div>
    ''')

在函数uploadFilesForTask中我只打印taskId值:

Future<Null> uploadFilesForTask(
      List<File> files, String taskId) async {
    print(taskId);
}

当我按&#34;添加图像&#34;按钮我每次都在任务列表中获得第一个任务的id。

按下输入按钮&#34;选择文件&#34;我认为我需要的是正确的。

如何通过&#34添加图像&#34;按钮?

pubspec.yaml

environment:
  sdk: '>=1.24.2'

dependencies:
  angular: '^4.0.0'
  angular_forms: '^1.0.0'
  angular_router: '^1.0.2'
  angular_components: '^0.8.0'

1 个答案:

答案 0 :(得分:1)

我没有使用唯一的标签 属性。

不对:

<label for="fileInput">
                    <material-button>
                        Add image 
                    </material-button>
                </label>

          <input type="file"
                id="fileInput"
                multiple
                #fileInput
                (change)="uploadFilesForTask(fileInput.files, task['_tasknumber'])"/>

右:

<label [attr.for]="task['_tasknumber']">
                    <material-button>
                        Add image 
                    </material-button>
                </label>

          <input type="file"
                [attr.id]="task['_tasknumber']"
                multiple
                #fileInput
                (change)="uploadFilesForTask(fileInput.files, task['_tasknumber'])"/>