Vue.js

Vue-5-模板和交互

2017-12-24  本文已影响0人  压根儿没快乐过
<!DOCTYPE html>
<html lang="en" xmlns:v-bind="http://www.w3.org/1999/xhtml">
<head>
    <meta charset="UTF-8">
    <title>模板和交互</title>
    <script src="../js/vue.js"></script>
    <script src="../js/vue-resource.js"></script>
</head>
<body>

<div id="box">
    <!--双向绑定-->
    <input type="text" v-model="msg">
    <br>
    <!--双向绑定-->
    <p>{{msg}}</p>
    <!--只绑定一次-->
    <p v-once>{{msg}}</p>
    <!--转义HTML-->
    <p v-html="msg"></p>

    <hr>
    <!--过滤器-->
    {{msg2 | uppercase}}

    <hr>
    交互
    <input type="button" value="获取请求" @click="get()">
    <input type="button" value="发送请求" @click="send()">
    <input type="button" value="jsonp测试一" @click="jsonpDemo()">
    <input type="button" value="jsonp测试二" @click="jsonpBaidu()">

</div>

<div id="box2">
    <input type="text" v-model="t1" @keyup="get()">
    <ul>
        <li v-for="value in myData" >
            {{value}}
        </li>
    </ul>
    <p v-show="myData.length==0">暂无数据...</p>
</div>

<script>
    window.onload = function () {

        //自定义过滤器
        Vue.filter('uppercase', function(value) {
            if (!value) { return ''}
            value = value.toString();
            return value.charAt(0).toUpperCase() + value.slice(1)
        });

        //模板
        new Vue({
            el:'#box',
            data:{
              msg:"你好",
              msg2:"aaaaaa"
            },
            methods:{
                //要放到服务器环境
                get:function(){
                    this.$http.get("a.txt").then(function (value) {
                        alert(value.status + value.data);
                    },function (reason) {
                        alert(reason.status);
                    })
                },
                send:function(){
                    this.$http.get("get.php",{
                        a:1,
                        b:2
                    }).then(function (value) {
                        alert(value.status + value.data);
                    },function (reason) {
                        alert(reason.status);
                    })
                },
                jsonpDemo:function () {
                    this.$http.jsonp("https://sug.so.360.cn/suggest",{
                        word:"a"
                    }).then(function (value) {
                        alert(value.status + value.data.s);
                    },function (reason) {
                        alert(reason.status);
                    })
                },
                jsonpBaidu:function () {
                    this.$http.jsonp("https://sp0.baidu.com/5a1Fazu8AA54nxGko9WTAnF6hhy/su",{
                        wd:'a'
                    },{
                        jsonp:'cb'  //callback名字,默认名字就是"callback"
                    }).then(function (value) {
                        alert(value.status + value.data.s);
                    },function (reason) {
                        alert(reason.status);
                    })
                }
            }
        });

    //    例子
            new Vue({
                el:'#box2',
                data:{
                    myData:[],
                    t1:'',
                    now:-1
                },
                methods:{
                    get:function(){
                        this.$http.jsonp('https://sp0.baidu.com/5a1Fazu8AA54nxGko9WTAnF6hhy/su',{
                            wd:this.t1
                        },{
                            jsonp:'cb'
                        }).then(function(res){
                            this.myData=res.data.s;
                        },function(){

                        });
                    }
                }
            });


    };
</script>

</body>
</html>
上一篇下一篇

猜你喜欢

热点阅读