亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

圖解AngularJS Wijmo5和LightSwitch

發布時間:2020-07-09 15:42:51 來源:網絡 閱讀:5178 作者:powertoolsteam 欄目:web開發

Visual Studio 2013 中的 LightSwitch 有新增功能,包括更好的團隊開發支持以及在構建 HTML 客戶端桌面和 Office 365 應用程序方面的改進。本文結合最新發布的Wijmo 5提供的AngularJs進行圖解。

圖解AngularJS Wijmo5和LightSwitch

基于Visual Studio LightSwitch作為數據源,我們使用Wijmo 5控件快速的創建 AngularJS應用程序。

圖解AngularJS Wijmo5和LightSwitch

插入數據記錄

圖解AngularJS Wijmo5和LightSwitch

業務規則校驗

圖解AngularJS Wijmo5和LightSwitch

數據記錄更新

圖解AngularJS Wijmo5和LightSwitch

選擇數據記錄,點擊鍵盤上刪除按鍵

圖解AngularJS Wijmo5和LightSwitch

點擊列頭,進行數據排序

圖解AngularJS Wijmo5和LightSwitch

并發性校驗(由LightSwitch的后端提供)。

Wijmo 5控件集

圖解AngularJS Wijmo5和LightSwitch

2014年10月7日---葡萄城宣布正式發布Wijmo 5。Wijmo 5不再兼容傳統瀏覽器(<= IE9),純HTML5控件集。并且,發布并Wijmo 5全部的控件中將全面支持Angular JS。

為何使用Wijmo 5和LightSwitch?

  • 為了100%控制UI:LightSwitch HTML Client基于JQuery Mobile,這導致為了控制UI不得不花費大量時間。

  • 為了實現安全性:安全策略一般在Server端實現。無法通過AngularJs前端技術實現。LightSwitch使得安全性非常容易實現。

  • 為了處理并發性:當多人同時更新DB會導致并發性,所幸,LightSwitch已經自動實現該特性。

  • 為了用LightSwitch進行管理界面代碼:基于LightSwitch,我們無需用AngularJs實現管理界面代碼,LightSwitch已經實現了,故結合LightSwitch和AngularJs使得編程非常容易。

  • 為了加快開發:當前使用LightSwitch,可以大大減少代碼編寫,這意味著開發進程會加速,bug會減少。

 

例子如下所示:

圖解AngularJS Wijmo5和LightSwitch

 

LightSwitch 業務層

圖解AngularJS Wijmo5和LightSwitch

在解決方案視圖,在數據源DataSources右鍵,選擇Add Table

圖解AngularJS Wijmo5和LightSwitch

創建ToDo表

圖解AngularJS Wijmo5和LightSwitch

點擊寫代碼按鈕,選擇Validate方法,在生成的模板中,插入驗證代碼。

partial void ToDoes_Validate(ToDo entity, EntitySetValidationResultsBuilder results)
        {            // Do not allow a task to be called {New Task]
            if (entity.TaskName == "[New Task]")
            {
                results.AddEntityError(                    "Task cannot be named [New Task]"
                    );
            }            // Do not allow more than 1 incomplete Task
            if (entity.IsComplete == false)
            {                int intCountOfIncomplete =                    this.DataWorkspace.ApplicationData.ToDoes
                    .Where(x => x.IsComplete == false)
                    .Where(x => x.Id != entity.Id).Count();                if (intCountOfIncomplete > 0)
                {
                    results.AddEntityError(                        "Cannot have more than 1 incomplete Task"
                        );
                }
            }
        }

Wijmo 5代碼

Wijmo 5下載地址:輸入郵箱即可獲得下載URL地址

圖解AngularJS Wijmo5和LightSwitch

 

圖解AngularJS Wijmo5和LightSwitch

解壓Wijmo樣例,定位到“..\Samples\JS\Angular\OData”目錄,拷貝Vendor和styles文件夾到LightSwitch Server工程的Scripts文件夾。

圖解AngularJS Wijmo5和LightSwitch

創建wijmo.data文件夾,下載ODataCollectionView.js,并拷貝在wijmo.data文件夾下。

AngularJs代碼

圖解AngularJS Wijmo5和LightSwitch

在scripts文件夾下創建app.js腳本文件,并輸入如下代碼。

// 在AngularJS 聲明依賴 Wijmo "wj" module:var app = angular.module('app', ['wj']);

圖解AngularJS Wijmo5和LightSwitch

在scripts文件夾下創建controllers文件夾,并創建appCtrl.js,并輸入如下代碼。

'use strict';var app = angular.module('app');

app.controller('appToDoCtrl', function appToDoCtrl($scope) {    // define data service URL and data types for specific columns
    var oDataService = '/ApplicationData.svc', dataTypes = [];    // load ToDos table
    $scope.cvToDo = new wijmo.data.ODataCollectionView(
        { serviceUrl: oDataService, entityName: 'ToDoes' },
        ['Id'],
        {
            serverSettings: {
                selects: ['Id', 'RowVersion', 'TaskName',                    'IsComplete', 'Created', 'Modified']
            }
        },
        dataTypes, loaded, true);    // Display any errors
    $scope.cvToDo.error.addHandler(function (sender, args) {
        alert(sender.errorMsg);
    });    // tell scope when tables finish loading
    function loaded() {
        $scope.$apply();
    }
});

創建HTML頁面

圖解AngularJS Wijmo5和LightSwitch

創建ToDo.htm頁面,并輸入如下代碼:

<!DOCTYPE html>
<html lang="en" ng-app="app" ng-controller="appToDoCtrl">
<head>
    <meta charset="utf-8" />
    <title>To DO</title>
    <!-- ensure IE uses the latest version of IE (yes, yes...) -->
    <meta http-equiv="X-UA-Compatible" content="IE=Edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />

    <!-- jQuery/Angular/Bootstrap -->
    <script src="http://code.jquery.com/jquery-2.0.0.min.js" 
            type="text/javascript"></script>
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.19/angular.min.js" 
            type="text/javascript"></script>
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.19/angular-route.min.js" 
            type="text/javascript"></script>
    <script src="https://netdna.bootstrapcdn.com/bootstrap/3.1.1/js/bootstrap.min.js" 
            type="text/javascript"></script>
    <link rel="stylesheet"  
          type="text/css" />

    <!-- Wijmo -->
    <script src="scripts/vendor/wijmo.min.js" type="text/javascript"></script>
    <script src="scripts/vendor/wijmo.input.min.js" type="text/javascript"></script>
    <script src="scripts/vendor/wijmo.grid.min.js" type="text/javascript"></script>
    <link href="styles/vendor/wijmo.min.css" rel="stylesheet" />

    <!-- app scripts -->
    <script src="scripts/wijmo.data/ODataCollectionView.js" type="text/javascript"></script>
    <script src="scripts/app.js" type="text/javascript"></script>
    <script src="scripts/controllers/appCtrl.js" type="text/javascript"></script>

    <!-- Wijmo-Angular interop -->
    <script src="scripts/vendor/wijmo.angular.min.js" type="text/javascript"></script>

    <!-- app styles -->
    <link href="styles/app.css" rel="stylesheet" type="text/css" />
</head>

<body>
    <div class="header">
        <div class="container" >
            <h2>
                TO DO Example            </h2>
        </div>
    </div>
</body>
</html>

 

在<body>內添加Wijmo Grid代碼:

<div class="container">
        <wj-flex-grid class="grid" 
                      allow-add-new="true" 
                      allow-delete="true" 
                      items-source="cvToDo">
            <wj-flex-grid-column 
                                 binding="TaskName" 
                                 width="300" 
                                 header="Task Name">
            </wj-flex-grid-column>
            <wj-flex-grid-column 
                                 binding="IsComplete" 
                                 datatype="Boolean" 
                                 width="200" 
                                 header="IsComplete">
            </wj-flex-grid-column>
        </wj-flex-grid>
    </div>

 

參考文章:

  • Microsoft Visual Studio LightSwitch 介紹

  • LightSwitch開發者中心

  • LightSwitch 團隊博客

  • Wijmo5 中文博客


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

红河县| 辉县市| 勐海县| 门头沟区| 台中县| 台东县| 玛纳斯县| 久治县| 夹江县| 广饶县| 乐清市| 嵊泗县| 项城市| 江都市| 临澧县| 本溪| 霍林郭勒市| 扎鲁特旗| 酉阳| 怀柔区| 凤翔县| 宁津县| 寻乌县| 迭部县| 肥乡县| 巴南区| 杂多县| 错那县| 丽江市| 礼泉县| 四会市| 乐陵市| 田林县| 嘉善县| 卢湾区| 灵宝市| 宁陵县| 建瓯市| 和平区| 龙门县| 霸州市|