Home > Web Front-end > JS Tutorial > Instructions for using dom-if and is attributes in JS framework Polymer_Basic knowledge

Instructions for using dom-if and is attributes in JS framework Polymer_Basic knowledge

WBOY
Release: 2016-05-16 15:48:22
Original
1354 people have browsed it

We often have the need for template rendering based on the value of a certain attribute, which is the most basic branch statement. There is ng-if available in Angular, and of course there is dom-if in Polymer. In fact, dom-if is a very simple thing. It is just the access point for this topic. What I want to introduce is actually the is attribute.
Like the dom-repeat introduced before, dom-if is used on the template element through the is attribute. For example, in the following example, two templates decide who should be rendered based on a Boolean value on a bound control
Run

<script> var Polymer = { dom: 'shadow' }; </script>
<base href="http://www.web-tinker.com/share/" />
<link rel="import" href="polymer/polymer.html" />

<dom-module id="demo-test">
 <template>
  <input type="checkbox" checked="{{checked::change}}">
  <template is="dom-if" if="[[checked]]">true</template>
  <template is="dom-if" if="[[!checked]]">false</template>
 </template>
 <script>
  Polymer({
   properties: {
    checked: { value: false }
   },
   is: 'demo-test'
  });
 </script>
</dom-module>

<demo-test></demo-test>

Copy after login

Whether it is dom-if or the previous dom-repeat, what exactly do these is attributes specify? In fact, it is the same as Angular. They are both Directive concepts, but Polymer does not call it Directive. We can completely create such a thing ourselves. For example, in the following example, we add an is="demo-test" thing to the div element
Run

<script> var Polymer = { dom: 'shadow' }; </script>
<base href="http://www.web-tinker.com/share/" />
<link rel="import" href="polymer/polymer.html" />

<script>
 Polymer({
  is: 'demo-test',
  extends: 'div', <!-- 关键就在这里
  ready: function(e) {
   this.innerHTML = '我是一个 demo-test';
  }
 });
</script>

<div is="demo-test"></div>

Copy after login

When defining, specify a tag name through extends to get an is directive. The above example is the simplest usage. We can create Shadow DOM ourselves and do what we want. In fact, Polymer's built-in dom-repeat, dom-if and other dom-* are also defined in this way. But this thing looks very complicated in detail, and my article is just an entry-level thing. If you want to know more specific usage, you should read the source code (I can't even find the official document where it is defined).

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template