我很难理解ansible with_subelements语法的逻辑,with_subelements究竟做了什么?我在这里查看了有关with_subelements的ansible文档http://docs.ansible.com/ansible/playbooks_loops.html#looping-over-subelements并且没有太大帮助。我还在博客上看到了带有with_subelements示例的剧本
import {Router, ActivatedRoute, Params} from '@angular/router';
constructor(private activatedRoute: ActivatedRoute) {}
ngOnInit() {
this.activatedRoute.queryParams.subscribe((params: Params) => {
let token = params['id_token'];
//save token
if(typeof token !="undefined"){
window.localStorage.setItem('authToken',token);
let route = JSON.parse(params['state']);
window.location.href =route;
}
});
}
item.1和item.0是指什么?
答案 0 :(得分:46)
这是subelements
查找工作原理的一个非常糟糕的例子。 (并且还有旧的,不受支持的语法)。
看看这个:
---
- hosts: localhost
gather_facts: no
vars:
families:
- surname: Smith
children:
- name: Mike
age: 4
- name: Kate
age: 7
- surname: Sanders
children:
- name: Pete
age: 12
- name: Sara
age: 17
tasks:
- name: List children
debug:
msg: "Family={{ item.0.surname }} Child={{ item.1.name }} Age={{ item.1.age }}"
with_subelements:
- "{{ families }}"
- children
任务列出子项就像是families
列表(外部循环)和每个族中的children
子元素(内部循环)上的嵌套循环。
因此,您应该提供一个dicts列表作为subelements
的第一个参数和要在每个外部项目中迭代的子元素的名称。
这种方式item.0
(在我的例子中是家庭)是一个外部项目,item.1
(我的例子中的孩子)是一个内部项目。
在Ansible文档中,示例subelements
用于循环用户(外部)并添加多个公钥(内部)。