Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
3.9k views
in Technique[技术] by (71.8m points)

angular - how to use templateOptions.options for ngx-formly multicheckbox field

Im my Angular application, I need set options of multicheckbox field from a function inside my app (component or service). I don′t know how works templateOptions.options, how should I write the value ?

This is my json code :

          {
            "key": "clientIds",
            "type": "multicheckbox",
            "className": "flex-1",
            "templateOptions": {
              "label": "Clients",
              "required": true
            },
            "expressionProperties": {
              "templateOptions.options": "??????" // <-- here to bind with a component or shared service method
            }
          }

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

You have a few options, but the easiest is to simply set options to an observable.

// Client Service
import { Injectable } from '@angular/core';
import { Observable, of } from 'rxjs';

@Injectable()
export class ClientService {
    clients = [
        { id: '1', name: 'Michael' },
        { id: '2', name: 'GammaStream' },
    ];

    getClients(): Observable<any[]> {
        return of(this.clients);
    }
}

// component

fields: FormlyFieldConfig[] = [
  {
    key: 'clientIds',
    type: 'multicheckbox',
    className: 'flex-1',
    templateOptions: {
      label: 'Clients',
      required: true,
      options: this.clientService.getClients()
    }
  }
];

constructor(private clientService: ClientService) {}

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...