2017.11.16 AngularJs分頁、 jquery、AppCan UI基礎框架、Ajax 、實現全選執行批量操作

第一組:姚成棟 AngularJs分頁

要正確并完整地顯示分頁信息,一定要注意以下幾個點:

1. HTML頁面上不能寫錯,模板如下
image.png

其中容易缺的是:max-size="10"最大顯示頁數(當頁數很多時特別實用);

2. 對應的controller中
image.png

因為在Js/models.js中有定義


image.png

也可以自己對其進行定義。

3. 如果頁面上有兩個以上的小模塊,類似于
image.png

則pageChanged方法要改成如下:


image.png
4. 還有一個類似于分頁的,就是序號
image.png

要注意的點主要是,需要應寫成如下,


image.png

不能寫成{{$index+1}},會出現轉到第二頁后序號仍從1開始的情況

5. 總結

這個分頁的注意事項主要是針對我們當前使用的新模板而言的,而且是針對分頁出現的一些小問題。如果出現分頁數據無法出現,或者刷新之后分頁出現不同的情況,可以先看看controller中是否有多個$scope.page = data.Page字段,如果不是這個問題,那應該就需要調試后臺傳過來的分頁數據了。


第二組:徐晉 jquery對象和DOM對象的相互轉換、 刪除節點:remove和detach的區別、 AppCan UI基礎框架

1. jquery對象和DOM對象的相互轉換
  • jquery --> DOM

    • var cr =("#cr"); //jquery對象
      var cr = $cr[0]; //DOM對象

    • var cr =("#cr"); //jquery對象
      var cr = $cr.get(0); //DOM對象

  • DOM --> jquery

    • var cr = document.getElementById("cr"); //DOM對象
      var cr =(cr); //jquery對象
2. 刪除節點:remove和detach的區別
  • .remove()方法

當某個節點用remove()方法刪除后,該節點所包含的所有后代節點將同時被刪除。這個方法的返回值是一個指向已被刪除的節點的引用,因此可以在以后再使用這些元素。

var $li = $("ul li:eq(1)").remove();
$li.appendTo("ul");
  • .detach()方法

detach()和remove()一樣,也是從DOM中去掉所有匹配的元素。但需要注意的是,這個方法不會把匹配的元素從jquery對象中刪除,因而可以在將來再使用這些匹配的元素。與remove()不同的是,所有綁定的事件、附加的數據等都會保留下來。

$("ul li").click(function(){
    alert($(this).html);
})
var $li = $("ul li:eq(1)").detach();
$li.appendTo("ul");

使用detach()后appendTo,該元素所綁定的click事件仍然存在;
若使用remove()后appendTo,click事件將不復存在。

總結來說:remove()與detach()的方法區別在于元素綁定的事件與附加數據是否被失效!

3. AppCan UI基礎框架

在AppCan UI架構中進行了CSS類封裝

ub 元素采用彈性BOX布局
ub-rev 子元素反序排列
ub-con 在子元素中加入一個容器,用于避免內容引起子元素大小變化
對應CSS代碼為position:absolute;width:100%;height:100%;
ub-ac、ub-ae 子元素垂直居中對齊和尾對齊
ub-pc、ub-pe、ub-pj 子元素水平居中對齊、尾對齊和兩端對齊
ub-ver 子元素縱向排列
ub-f1、ub-f2、ub-f3、ub-f4子元素占用區域份數

UI的分辨率適配

UI 中,我們在中間件中為不同屏幕密度(單位尺寸中可顯示的點數),默認定義好了字體,開發者不再需要在代碼中引入ui-media.css文件,即使有新的 分辨率手機問世,也會自動適配。目前參照Andorid屏幕密度劃分為低密度、普通密度、高密度、超高密度、超超高密度,分別定義字體為14px 16px 24px 32px 48px。


第三組: liger中利用 js關閉alertpage 和 Ajax 簡單操作步驟

1. liger中利用 js關閉alertpage

在調用完Ajax之后想要關閉當前頁面回到父頁面,如果用parent.CloseAlertPage();
是不起作用的,可以利用以下方法:

parent.$.ligerDialog.close();
parent.$(".l-dialog,.l-window-mask").remove();
2. Ajax 簡單操作步驟

AJAX 不是新的編程語言,而是一種使用現有標準的新方法。
AJAX 最大的優點是在不重新加載整個頁面的情況下,可以與服務器交換數據并更新部分網頁內容。
AJAX 不需要任何瀏覽器插件,但需要用戶允許JavaScript在瀏覽器上執行。

以下是根據我實際操作過程中的個人理解,具體解釋在代碼的注釋中供參考:
.aspx

$.ajax({
    type: "post",
    url: "/Action/PmAsCheckHandler.ashx",
    data: {
        method: "getplantid",
        //Ajax引用的方法
        insplantid: planTid //調ajax時需要傳入的參數
    },
    dataType: 'text',
    async: false,
    //同步異步操作,false表示異步,即在頁面加載完之后再執行ajax;
    若是true,表示同步,即在頁面加載時運行ajax;
    由于ajax運行速度較快,往往在頁面加載之前便完成運行,
    所以在我們現在的實際運用過程中,多設置成false。
    success: function(data) {
        plancheckType = data; //data是用于接收執行完的Ajax返回值
    }
});

.ashx.cs

public void ProcessRequest(HttpContext context) {
    context.Response.ContentType = "text/plain";
    string method = !string.IsNullOrEmpty(context.Request["method"]) ? context.Request["method"].ToLower() : "";
    string result = "";
    switch (method) {  //method表示從前臺傳進來的方法,上面的代碼只需復制即可
    
    case "getplantid":
        result = GetPlanType(context);//方法返回值
        break;
        
    }
    context.Response.Write(result);
}


//下面的實際方法與我們在后臺寫的方法類似;需要注意的是loginUser不能直接用,需要用DB.Config.systemAdmin代替
/// <summary>
/// 通過plantid查問題類型
/// </summary>
/// <param name="context"></param>
/// <returns></returns>
public string GetPlanType(HttpContext context) {
    string plantid = context.Request["insplantid"];
    Model.PmAsFormulatePlan dbpafplan = DB.PmAsFormulatePlan.SelectById(DB.Config.systemAdmin, plantid.ToLong());
    string planType = Model.EnumHelper.GetEnumDescription(dbpafplan.PmAsFormulateCheckType);
    return planType;

}

第四組:張元一 興趣分享

《驚魂記》(Psycho)中正對噴水蓮蓬頭的鏡頭是怎么拍出來的?
image.png

比較正式的記載,如Alfred Hitchcock and the Making of Psycho這本書中,給出的答案指解決方案是由希區柯克本人設想的,把噴頭的中間孔堵住,然后將攝影機放在比較遠的地方用長焦鏡頭拍攝,再把景別取緊一點,就讓觀眾有一種水柱直沖鏡頭而去的感覺了。

另外有一種流言,例如IMDb的trivia等處,說劇組設計了一個直徑6英尺(約合180cm)的巨型噴頭(把道具放大,希區柯克不是沒干過類似的事),然后把攝影機放底下拍來。但這種說法找不到有力的支持,有的工作人員表示不知道此事。虛假的可能性比較大。

原文抄錄如下:

希區柯克還讓拉塞爾想辦法,設計一個主觀視角鏡頭,以提高觀眾的代入感。這鏡頭要拍的就是,花灑噴出的水,直接沖著鏡頭而來。“那是個老式花灑,無法隨意控制噴水方向?!眻鲇浭┝_姆注意到,“所以大家都很疑惑,‘如果直接對著它拍,那又如何保證鏡頭不會被淋濕?’希區柯克先生解釋,‘用長焦鏡拍,再把花灑上面靠里的幾個洞堵上,水就不會亂噴了。’用長焦鏡,我們可以退得更靠后一些,水看似要打在鏡頭上,其實卻只是從兩側噴過去了。站在邊上的人倒是確實都被淋到了,但也拍到了我們需要的畫面?!?/p>


第五組: 周倩宇 實現全選執行批量操作

在做頁面功能時,經常會遇到需要批量執行的操作,例如:批量刪除,批量發布,批量提交等。當數量少的時候可以像圖中一個個勾選。


image.png

但是當數據量很大的時候,勾選單選框很費時間,這時就需要勾選全選框。然而全選框對應的那行是沒有數據的,我們需要一些方法在勾選全選框的同時,排除掉全選框那一行。

也就是說,在勾選全選框執行批量操作時,在對應的執行方法中排除圖中紅框那一行,從序號1那一行開始獲取數據。


image.png

代碼舉例:


image.png

先在此處給全選框所對應的那一行加個ID

<table class="tablelist" style="width: 3000px" id="tbodyID">

然后在方法中進行處理

<script> 
    function changeApply() {
        var items = document.getElementsByName("cb");
        var rows = document.getElementById("tbodyID").rows;
        var count = 0;
        var tid = "";
        for (var i = 0; i < items.length; i++) {
            //當前checkbox實現勾選
            if (items[i].checked) {
                var row = items[i].parentElement.parentElement.rowIndex;
                var status = rows[row].cells[3].innerHTML;
                if (status != "已發布" && row != 0) {
                    alert("請選擇已發布狀態的數據!");
                    return false;
                }
                count += 1;
                tid += items[i].value + ','
            }        
        }
        if (count == 0) {}
        else if (count != 0) {
            var r = confirm("確認xx?")
            if (r == true) {
openTab();
            }
        }
}
</script>
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 229,698評論 6 539
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,202評論 3 426
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 177,742評論 0 382
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,580評論 1 316
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,297評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,688評論 1 327
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,693評論 3 444
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,875評論 0 289
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,438評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,183評論 3 356
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,384評論 1 372
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,931評論 5 363
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,612評論 3 348
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,022評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,297評論 1 292
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,093評論 3 397
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,330評論 2 377

推薦閱讀更多精彩內容

  • 一、樣式篇 第1章 初識jQuery (1)環境搭建 進入官方網站獲取最新的版本 http://jquery.co...
    凜0_0閱讀 3,432評論 0 44
  • 第1章 簡介 第2章 DOM節點的創建 2-1 DOM創建節點及節點屬性 通過JavaScript可以很方便的獲...
    mo默22閱讀 828評論 0 8
  • 1:jQuery節點創建與屬性的處理 創建元素節點:可以有幾種方式,后面會慢慢接觸。常見的就是直接把這個節點的結構...
    碼農小楊閱讀 616評論 0 1
  • DOM創建節點及節點屬性 通過JavaScript可以很方便的獲取DOM節點,從而進行一系列的DOM操作。但實際上...
    阿r阿r閱讀 1,032評論 0 9
  • 原文鏈接 http://blog.poetries.top/2016/10/20/review-jQuery 關注...
    前端進階之旅閱讀 16,666評論 18 503