zoukankan      html  css  js  c++  java
  • windows store app search contract

    代码如下:

    html:

    <!DOCTYPE html>
    <html>
    <head>
        <meta charset="utf-8" />
        <title>App1</title>
    
        <!-- WinJS references -->
        <link href="//Microsoft.WinJS.1.0/css/ui-dark.css" rel="stylesheet" />
        <script src="//Microsoft.WinJS.1.0/js/base.js"></script>
        <script src="//Microsoft.WinJS.1.0/js/ui.js"></script>
    
        <!-- App1 references -->
        <link href="/css/default.css" rel="stylesheet" />
        <script src="/js/default.js"></script>
    
    
        </script>
    </head>
    <body>
    
        <div id="itemTpl" data-win-control="WinJS.Binding.Template">
            <div class="item">
                <div class="text" data-win-bind="innerText:name"></div>
            </div>
        </div>
        <div data-win-control="WinJS.UI.ListView" id="list" data-win-options="{itemTemplate:itemTpl,itemDataSource:ViewModel.filter.dataSource}"></div>
    
        <button id="search">搜索</button>
    </body>
    </html>

    js 代码:

    (function () {
        "use strict";
    
        WinJS.Binding.optimizeBindingReferences = true;
    
        var app = WinJS.Application;
        var activation = Windows.ApplicationModel.Activation;
        var s = Windows.ApplicationModel.Search;
    
        app.onactivated = function (args) {
            if (args.detail.kind == activation.ActivationKind.launch) {
                var data = ['Aaliyah', 'Aaron', 'Abigail', 'Abraham', 'Adam', 'Addison', 'Adrian',
                    'Adriana', 'Aidan', 'Aiden', 'Alex', 'Alexa', 'Alexander', 'Alexandra', 'Alexis',
                    'Allison', 'Alyssa', 'Amelia', 'Andrew', 'Angel', 'Angelina', 'Anna', 'Anthony',
                    'Ariana', 'Arianna', 'Ashley', 'Aubrey', 'Austin', 'Ava', 'Avery', 'Ayden',
                    'Bella', 'Benjamin', 'Blake', 'Brandon', 'Brayden', 'Brian', 'Brianna', 'Brooke',
                    'Bryan', 'Caleb', 'Cameron', 'Camila', 'Carter', 'Charles', 'Charlotte', 'Chase',
                    'Chaya', 'Chloe', 'Christian', 'Christopher', 'sClaire', 'Connor', 'Daniel',
                    'David', 'Dominic', 'Dylan', 'Eli', 'Elijah', 'Elizabeth', 'Ella', 'Emily',
                    'Emma', 'Eric', 'Esther', 'Ethan', 'Eva', 'Evan', 'Evelyn', 'Faith', 'Gabriel',
                    'Gabriella', 'Gabrielle', 'Gavin', 'Genesis', 'Gianna', 'Giovanni', 'Grace',
                    'Hailey', 'Hannah', 'Henry', 'Hunter', 'Ian', 'Isaac', 'Isabella', 'Isaiah',
                    'Jack', 'Jackson', 'Jacob', 'Jacqui', 'Jaden', 'Jake', 'James', 'Jasmine',
                    'Jason', 'Jayden', 'Jeremiah', 'Jeremy', 'Jessica', 'Joel', 'John', 'Jonathan', ];
    
                //定义 viewmodel
                WinJS.Namespace.define("ViewModel", {
                    all: [],
                    filter: new WinJS.Binding.List(),
                    text: 'a'
                });
    
                //填充viewmodel
                data.forEach(function (item) {
                    ViewModel.all.push(item);
                });
    
    
                // filter viewmodel return a WinJS.Binding.List() 
                ViewModel.search = function (text, suggustion) {
                    var all = ViewModel.all;
                    ViewModel.filter.length = 0;
                    var target = suggustion ? [] : ViewModel.filter;
    
    
                    all.forEach(function (item, i) {
                        if (item.indexOf(text) != -1) {
                            target.push({ name: item });
                        }
                    });
    
                    return target;
                }
            }
    
    
            WinJS.UI.processAll().then(function () {
    
                document.querySelector('#search').onclick = function (e) {
                    var sp = s.SearchPane.getForCurrentView();
    
                    //弹出 搜索
                    sp.show(ViewModel.text);
              //sp.searchHistoryEnabled = false;  
                    //添加 搜索框 文本改变  事件处理函数
                    sp.addEventListener('suggestionsrequested', function (e) {
                        //获取文本框输入的文字
                        var query = e.queryText;
    
                        //根据输入框文字 获取筛选后的 list
                        var filterResult = ViewModel.search(query);
    
                        filterResult.forEach(function (item) {
                            //把过滤后的结果显示到 searchpanel 上面
                            e.request.searchSuggestionCollection.appendQuerySuggestion(item.name);
    
                        });
                    });
                }
            })
        };
        app.start();
    })();
  • 相关阅读:
    UI系统的分类
    DSL的概念
    什么是“图灵完备”?
    UI系统的作用
    redis——持久化方式RDB与AOF分析
    Redis能做什么?不能做什么?
    PHP Ajax 跨域问题最佳解决方案
    charles和Fiddler感觉哪个更好用
    Fiddler工具使用介绍一
    Xshell出现要继续使用此程序必须应用到最新的更新或使用新版本
  • 原文地址:https://www.cnblogs.com/Mr-Joe/p/3196311.html
Copyright © 2011-2022 走看看