国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

vue2組件之select2調用的示例代碼

2024-05-06 15:25:41
字體:
來源:轉載
供稿:網友

目前,項目中使用了純前端的靜態項目+RESTFul接口的模式。為了更好的對數據進行操作,前端使用了vue2的mvvm功能,但是由于不是單頁面應用,所以,并沒有涉及到其它的如vue-route等功能,也未使用webpack等編譯功能,所以,也沒有使用.vue文件功能。這時候,如果用到控件,則多數從原jquery的組件中選擇。

select下拉搜索選擇

這次的需求調研與設計是原來做winform開發的同事,由于用慣了devexpress這個控件庫,所以,對于searchlookupeditor這個控件情有獨鐘,所以,在設計的時候,許多地方都用到。

最初實現

最初,我使用了select2綁定select標簽,設定其change事件 ,在事件中修改對應的vue的data值,同時,在vue中設定watch``data中被綁定的屬性,屬性值發生變化,則修改對應的dom的val,然后再觸發select2的change事件。當然,這種對應關系,我在select標簽上放了一個data-vuep來保存其與vue屬性的對應關系,并放在全局的select2vue和dom2vue中。

//mounted中的部分代碼            select2vue = {};          $("select").each(function (index, item) {            var s2 = $(item).select2({              language: "zh-CN", //設置 提示語言              width: "100%", //設置下拉框的寬度              theme: "classic",              placeholder: "請選擇"            }).on("change", function (e) {              console.log(e);              var v = $(e.target).val();              var p = $(e.target).attr("data-vuep");              eval("vue_cust_busi." + p + "='" + v + "';");              //$(e.target).find("option").attr("selected",false);              //$(e.target).find("option[value='"+v+"']").attr("selected",true);            });            var p = $(item).attr("data-vuep");            select2vue[p] = s2;            dom2vue[p] = item;          });          setTimeout(function(){            vue_cust_busi.editor.ID_CUST="3";            vue_cust_busi.editor.NAME_CUST="*有限責任公司";            console.log("修改");          },10,null);//watch中的部分代碼          "temp.P1": function (val) {            fire(arguments.callee.name.toString(), val);          },//通用函數    function fire(p, val) {      $(dom2vue[p]).val(val);      select2vue[p].trigger("change");    }//html                        <select data-vuep="editor.P1" class="form-control ">                             <option value="" ></option>                              <option v-for="yearOpt in yearOpts" v-bind:value="yearOpt">{{yearOpt}}</option>                         </select>

為什么要用一個data-vuep來將數據與vue的屬性關聯呢,因為我發現,select2初始化了這個select標簽之后,修改這個標簽的值無法觸發修改vue對應的v-model的屬性。所以,只能用這個方法。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 绍兴市| 霍山县| 鄂温| 芦溪县| 南江县| 镇江市| 大姚县| 碌曲县| 深水埗区| 临沭县| 贺州市| 察隅县| 六枝特区| 盐源县| 襄汾县| 鹿泉市| 广元市| 临邑县| 二连浩特市| 大兴区| 五指山市| 莱西市| 玉树县| 霸州市| 嫩江县| 佛冈县| 六枝特区| 甘泉县| 乐至县| 泰州市| 德钦县| 桐梓县| 新野县| 四平市| 兴山县| 娱乐| 五华县| 扎囊县| 曲靖市| 常德市| 宜宾市|