vueTempDataBindText

Test how vue template bind data

HTML

<script src="https://cdn.jsdelivr.net/vue/1.0.24/vue.js"></script>
<div id="app">
  <p><strong>Class</strong></p>
  <div v-for="value in 10" class="{{ isLessThanRandom($index) ? 'colorRed' : 'colorGreen'}}" @click='onTestClick(value)'>{{$index}}</div>
	<br>
  <div v-for="value in 10" class="{{ this.isLessThanRandom($index) ? 'colorRed' : 'colorGreen'}}" @click='onTestClick(value)'>{{$index}}</div>
	<br>
	<div :class="{'colorGrey': isNeedFlag}">analysis class bind (1)</div>
	<div :class="{colorGrey: !isNeedFlag}">analysis class bind (2)</div>
	
	<hr>
	<p><strong>Input</strong></p>
	<p>input content: <span style='color:#999'>{{testInput}}</span></p>
	<input type="text" value="{{ testInput }}">
	<input type="text" v-model="testInput">
	<a href="javascript:;" @click='onClearInputClick'>Clear Input</a>
	
  <hr>
	<p><strong>v-if</strong></p>
  <div class='colorPurple' v-if='isShowMoudleFlag'> Show </div>
  <div class='colorPurple' v-if='!isShowMoudle(20)'> Show </div>
  <div class='colorPurple' v-if='isShowMoudle(30)'> Show Also</div>
	<div class='colorPurple' v-if='{{isShowMoudleFlag}}'> Can`t Show(x)</div>
  <blockquote class='jade-blockquote'>
    <strong>注:</strong> v-if,之后可以跟:1. 变量String;2. 函数调用; 3. 表达式;(当然;函数名同变量名不能重) Niubility.Nice</blockquote>
</div>

CSS

.colorRed,
.colorGreen {
  display: inline-block;
  width: 30px;
  height: 30px;
  border: 1px solid #333;
  text-align: center;
  line-height: 30px;
}

.colorRed {
  background-color: #f22;
}

.colorGreen {
  background-color: #2f2;
  pointer-events: none;
}

.colorPurple {
  background-color: purple;
  border: 1px solid #fe0;
  width: 300px;
  height: 30px;
}

.colorGrey{
	background-color: #ccc;
	color: #666;
	margin-top: 5px;
}
.jade-blockquote {
  margin: 3px;
  padding: 9px 0;
  border-left: 3px solid #000;
  background-color: #666;
}

JavaScript

new Vue({
  el: "#app",
  data: {
    isShowMoudleFlag: true,
		isNeedFlag: true,
		testInput: 'default text'
  },
	watch: {
		'textInput': function(newVal, oldVal){
			console.log(newVal)
		}
	},
  methods: {
    isLessThanRandom: function(index) {
      var randomNum = this.getRandomNum(1, 10)
      if (index <= randomNum) {
        return true
      } else {
        return false
      }
    },
    getRandomNum: function(Min, Max) {
      var Range = Max - Min;
      var Rand = Math.random();
      return (Min + Math.round(Rand * Range));
    },
    isShowMoudle: function(num) {
      return num >= 30
    },
		
		<!-- on-click-event -->
		onTestClick: function(index) {
      alert(index)
    },
		onClearInputClick: function(){
			this.testInput = ''
		}
  }
})