diff --git a/example/repeat-custom-tag/main.js b/example/repeat-custom-tag/main.js index 60aa2c110..d3cd5afd5 100644 --- a/example/repeat-custom-tag/main.js +++ b/example/repeat-custom-tag/main.js @@ -1,7 +1,7 @@ import Omi from '../../src/index.js'; -import item from './item.js' +import Item from './item.js' -Omi.tag('item',item) +Omi.tag('item',Item) class List extends Omi.Component { constructor(data) { @@ -10,7 +10,7 @@ class List extends Omi.Component { render(){ return `
- +
` } diff --git a/tutorial/omi-v1.5-release.md b/tutorial/omi-v1.5-release.md index df46c1fff..1a690de6a 100644 --- a/tutorial/omi-v1.5-release.md +++ b/tutorial/omi-v1.5-release.md @@ -142,6 +142,82 @@ Omi.render(new List({ ➜ [example](https://alloyteam.github.io/omi/website/redirect.html?type=repeat) +上面是一个简单是例子说明o-repeat和条件判断o-if指令的使用方式,也可以支持多重循环: + +```js +class List extends Omi.Component { + constructor(data) { + super(data); + } + + render(){ + return `
+
+ {{$index}}- {{item.text}} + +
+
` + } + +} + +Omi.render(new List({ + items: [ + { text: 'Omi', show: true ,arr:['a','b','c']}, + { text: 'dntzhang', show: true, arr:['d','e']}, + { text: 'AlloyTeam'} + ] +}),"body",true); +``` + +➜ [example](https://alloyteam.github.io/omi/website/redirect.html?type=repeat-n) + +自定义标签也可以使用指令: + +```js +class Item extends Omi.Component { + + render(){ + return `
Hello, {{text}}
` + } +} + +Omi.tag('item',Item) + +class List extends Omi.Component { + constructor(data) { + super(data); + } + + render(){ + return `
+ +
` + } + +} + +Omi.render(new List({ + items: [ + { text: 'Omi', show: true }, + { text: 'dntzhang', show: true }, + { text: 'AlloyTeam'} + ] +}),'#container'); +``` + +➜ [example](https://alloyteam.github.io/omi/website/redirect.html?type=repeat-ct) + + + + ## Omi相关 * Omi官网[omijs.org](http://www.omijs.org) diff --git a/website/redirect.html b/website/redirect.html index 904dfcf11..a5d428a2d 100644 --- a/website/redirect.html +++ b/website/redirect.html @@ -13,9 +13,14 @@ var type=getQueryString().type; if(type ==='form'){ goto('http://alloyteam.github.io/omi/example/playground/index.html?code=class%20FormTest%20extends%20Omi.Component%20%7B%0A%20%20%20%20constructor(data)%20%7B%0A%20%20%20%20%20%20%20%20super(data)%3B%0A%20%20%20%20%20%20%20%0A%20%20%20%20%7D%0A%0A%20%20%20%20handleChange(target)%7B%0A%20%20%20%20%20%20console.log(target.value)%0A%20%20%20%20%20%20this.data.value%20%3D%20target.value%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20handleSubmit(evt)%20%7B%0A%20%20%20%20%20%20alert(%27Your%20favorite%20flavor%20is%3A%20%27%20%2B%20this.data.value)%3B%0A%20%20%20%20%20%20evt.preventDefault()%3B%0A%20%20%20%20%7D%0A%20%20%0A%20%20%20%20render%20()%20%7B%0A%20%20%20%20%20%20%20%20return%20%60%0A%20%20%20%20%20%20%20%20%3Cform%20onsubmit%3D%22handleSubmit(event)%22%3E%0A%20%20%20%20%20%20%20%20%3Clabel%3E%0A%20%20%20%20%20%20%20%20%20%20Pick%20your%20favorite%20La%20Croix%20flavor%3A%0A%20%20%20%20%20%20%20%20%20%20%3Cselect%20value%3D%22%7B%7Bvalue%7D%7D%22%20onchange%3D%22handleChange(this)%22%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%3Coption%20value%3D%22grapefruit%22%3EGrapefruit%3C%2Foption%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%3Coption%20value%3D%22lime%22%3ELime%3C%2Foption%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%3Coption%20value%3D%22coconut%22%3ECoconut%3C%2Foption%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%3Coption%20value%3D%22mango%22%3EMango%3C%2Foption%3E%0A%20%20%20%20%20%20%20%20%20%20%3C%2Fselect%3E%0A%20%20%20%20%20%20%20%20%3C%2Flabel%3E%0A%20%20%20%20%20%20%20%20%3Cinput%20type%3D%22submit%22%20value%3D%22Submit%22%20%2F%3E%0A%20%20%20%20%20%20%3C%2Fform%3E%60%3B%0A%20%20%20%20%7D%0A%7D%20%0A%0AOmi.render(new%20FormTest(%7B%20value%3A%20%27mango%27%20%7D)%2C%27%23container%27)%3B%20%20'); + }else if(type==='repeat-n'){ + goto('http://alloyteam.github.io/omi/example/playground/index.html?code=class%20List%20extends%20Omi.Component%20%7B%0A%20%20%20%20constructor(data)%20%7B%0A%20%20%20%20%20%20%20%20super(data)%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20render()%7B%0A%20%20%20%20%20%20%20%20return%20%60%3Cdiv%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cdiv%20o-repeat%3D%22item%20in%20items%22%20o-if%3D%22item.show%22%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%7B%24index%7D%7D-%20%7B%7Bitem.text%7D%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cul%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cli%20o-repeat%3D%22subItem%20in%20item.arr%20by%20%24subIndex%22%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cdiv%3Eparent%20index%3A%20%7B%7B%24index%7D%7D%3C%2Fdiv%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cdiv%3Eparent%20item%20text%3A%7B%7Bitem.text%7D%7D%3C%2Fdiv%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cdiv%3Esub%20index%3A%20%7B%7B%24subIndex%7D%7D%3C%2Fdiv%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cdiv%3Esub%20item%20%3A%7B%7BsubItem%7D%7D%3C%2Fdiv%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3C%2Fli%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3C%2Ful%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3C%2Fdiv%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3C%2Fdiv%3E%60%0A%20%20%20%20%7D%0A%0A%7D%0A%0AOmi.render(new%20List(%7B%0A%20%20%20%20items%3A%20%5B%0A%20%20%20%20%20%20%20%20%7B%20text%3A%20%27Omi%27%2C%20show%3A%20true%20%2Carr%3A%5B%27a%27%2C%27b%27%2C%27c%27%5D%7D%2C%0A%20%20%20%20%20%20%20%20%7B%20text%3A%20%27dntzhang%27%2C%20show%3A%20true%2C%20arr%3A%5B%27d%27%2C%27e%27%5D%7D%2C%0A%20%20%20%20%20%20%20%20%7B%20text%3A%20%27AlloyTeam%27%7D%0A%20%20%20%20%5D%0A%7D)%2C%22%23container%22)%3B') }else if(type==='hello'){ goto('http://alloyteam.github.io/omi/example/playground/index.html?code=class%20Hello%20extends%20Omi.Component%20%7B%0A%20%20%20%20constructor(data)%20%7B%0A%20%20%20%20%20%20%20%20super(data)%3B%0A%20%20%20%20%7D%0A%20%20%20%20style%20()%20%7B%0A%20%20%20%20%20%20%20%20return%20%20%60%0A%20%20%20%20%20%20%20%20%20%20%20%20h1%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20cursor%3Apointer%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%60%3B%0A%20%20%20%20%7D%0A%20%20%20%20handleClick(target%2C%20evt)%7B%0A%20%20%20%20%20%20%20%20alert(target.innerHTML)%3B%0A%20%20%20%20%7D%0A%20%20%20%20render()%20%7B%0A%20%20%20%20%20%20%20%20return%20%20%60%0A%20%20%20%20%20%20%20%20%3Cdiv%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%3Ch1%20onclick%3D%22handleClick(this%2C%20event)%22%3EHello%20%2C%7B%7Bname%7D%7D!%3C%2Fh1%3E%0A%20%20%20%20%20%20%20%20%3C%2Fdiv%3E%0A%20%20%20%20%20%20%20%20%60%3B%0A%0A%20%20%20%20%7D%0A%7D%0A%0AOmi.render(new%20Hello(%7B%20name%20%3A%20%22Omi%22%20%7D)%2C%22%23container%22)%3B'); - }else if(type==='hello_nest'){ + }else if(type==='repeat-ct') { + goto('http://alloyteam.github.io/omi/example/playground/index.html?code=class%20Item%20extends%20Omi.Component%20%7B%0A%0A%20%20%20%20render()%7B%0A%20%20%20%20%20%20%20%20return%20%60%3Cdiv%3EHello%2C%20%7B%7Btext%7D%7D%3C%2Fdiv%3E%60%0A%20%20%20%20%7D%0A%7D%0A%0AOmi.tag(%27item%27%2CItem)%0A%0Aclass%20List%20extends%20Omi.Component%20%7B%0A%20%20%20%20constructor(data)%20%7B%0A%20%20%20%20%20%20%20%20super(data)%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20render()%7B%0A%20%20%20%20%20%20%20%20return%20%60%3Cdiv%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Citem%20o-repeat%3D%22item%20in%20items%22%20o-if%3D%22item.show%22%20data-text%3D%22%7B%7Bitem.text%7D%7D%22%3E%3C%2Fitem%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3C%2Fdiv%3E%60%0A%20%20%20%20%7D%0A%0A%7D%0A%0AOmi.render(new%20List(%7B%0A%20%20%20%20items%3A%20%5B%0A%20%20%20%20%20%20%20%20%7B%20text%3A%20%27Omi%27%2C%20show%3A%20true%20%7D%2C%0A%20%20%20%20%20%20%20%20%7B%20text%3A%20%27dntzhang%27%2C%20show%3A%20true%20%7D%2C%0A%20%20%20%20%20%20%20%20%7B%20text%3A%20%27AlloyTeam%27%7D%0A%20%20%20%20%5D%0A%7D)%2C%27%23container%27)%3B'); + } + else if(type==='hello_nest'){ goto('http://alloyteam.github.io/omi/example/playground/index.html?code=class%20Hello%20extends%20Omi.Component%20%7B%0A%0A%20%20%20%20style%20()%20%7B%0A%20%20%20%20%20%20return%20%20%60%0A%20%20%20%20%20%20%20%20%20%20h1%7B%0A%20%20%20%20%20%20%20%20%20%20%09cursor%3Apointer%3B%0A%20%20%20%20%20%20%20%20%20%20%7D%60%0A%20%20%20%20%7D%0A%20%20%0A%20%20%20%20handleClick(evt)%7B%0A%20%20%20%20%20%20alert(evt.target.innerHTML)%3B%0A%20%20%20%20%7D%0A%20%20%0A%20%20%20%20render()%20%7B%0A%20%20%20%20%20%20return%20%20%60%0A%20%20%20%20%20%20%3Cdiv%3E%0A%20%20%20%20%20%20%09%3Ch1%20onclick%3D%22handleClick%22%3EHello%20%2C%7B%7Bname%7D%7D!%3C%2Fh1%3E%0A%20%20%20%20%20%20%3C%2Fdiv%3E%60%0A%20%20%20%20%7D%0A%7D%0A%0AOmi.tag(%27hello%27%2C%20Hello)%0A%0Aclass%20App%20extends%20Omi.Component%20%7B%0A%20%20%0A%20%20%20%20render()%20%7B%0A%20%20%20%20%20%20%20%20return%20%20%60%0A%20%20%20%20%20%20%20%20%3Cdiv%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%3Chello%20data-name%3D%22Omi%22%3E%3C%2Fhello%3E%20%0A%20%20%20%20%20%20%20%20%3C%2Fdiv%3E%60%0A%20%20%20%20%7D%0A%7D%0A%0AOmi.render(new%20App()%2C%22%23container%22)'); }else if(type==='repeat'){ goto('http://alloyteam.github.io/omi/example/playground/index.html?code=class%20List%20extends%20Omi.Component%20%7B%0A%20%20%20%20constructor(data)%20%7B%0A%20%20%20%20%20%20%20%20super(data)%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20render()%7B%0A%20%20%20%20%20%20%20%20return%20%60%3Cdiv%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cdiv%20o-repeat%3D%22item%20in%20items%22%20o-if%3D%22item.show%22%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%7B%24index%7D%7D-%20%7B%7Bitem.text%7D%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3C%2Fdiv%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3C%2Fdiv%3E%60%0A%20%20%20%20%7D%0A%0A%7D%0A%0AOmi.render(new%20List(%7B%0A%20%20%20%20items%3A%20%5B%0A%20%20%20%20%20%20%20%20%7B%20text%3A%20%27Omi%27%2C%20show%3A%20true%20%7D%2C%0A%20%20%20%20%20%20%20%20%7B%20text%3A%20%27dntzhang%27%2C%20show%3A%20true%20%7D%2C%0A%20%20%20%20%20%20%20%20%7B%20text%3A%20%27AlloyTeam%27%7D%0A%20%20%20%20%5D%0A%7D)%2C%27%23container%27)%3B');