Select2 插件官网:https://select2.github.io/
Select2 初始化说明:
代码在 public/javascripts/subchannel_items.js 中的 $("#subchannel_item_showable_id").select2 行。
select2 方法中的参数说明:
theme:指定 CSS 主题,Bootstrap 主题 Github 地址:https://github.com/select2/select2-bootstrap-theme
escapeMarkup:用来转义下拉列表中 HTML 代码的函数。这里重写,表示不转义。
language:设置提示文字。这里重写了搜索无结果(noResult)时的提示文字为一个链接,用来添加内容使用。
tempateResult:下拉列表中每一相的渲染模板,当是视频时,显示 video_id 和 show_id
ajax:发送一个 GET Ajax 请求,从数据库获取下拉列表内容
url:通过不同的 showable_type 确定
data:请求后端时传递的参数。
structure:后端返回 json 的格式要求
page:分页页数
q[xxxxxxxxxx]:ransack 使用的搜索参数
transport:select2 中 Ajax 请求处理逻辑,这里需要处理 Ajax 响应的 Header 中的 ‘X-Total-Count’ 和 ‘X-Per-Page’
       用来后续进行分页逻辑处理
processResult:对 Ajax 中请求返回的 data,以及查询请求参数 params 进行处理,返回生成下拉类表需要的数据
Select2 的下拉列表实际就是请求了对应资源的 index action。如 VideosController 中的 index
action,新创建了 index.json.jbuilder 和 _video.json.jbuilder view。其中
_video.json.jbuilder 中通过 params[:structure] 来确定返回的 json 格式。index action
使用 api_paginator 方法来设置分页相关的 Header。
当搜索的内容不存在,点击“添加一个”时的逻辑:
代码在 public/javascripts/subchannel_items.js 中的  $(document).on('click', '#add-subchannel-item-showable' 行。
当搜索的内容存在,选择时从媒资接口更新相关的明星或视频信息
代码在 public/javascripts/subchannel_items.js 中的  $("#subchannel_item_showable_id").on('select2:select' 行。

Item 表单页面的 Select2 相关业务逻辑的更多相关文章

  1. AnjularJS系列2 —— 表单控件功能相关指令

    第二篇,表单控件功能相关指令. ng-checked控制radio和checkbox的选中状态 ng-selected控制下拉框的选中状态 ng-disabled控制失效状态 ng-multiple控 ...

  2. 通过Web Api 和 Angular.js 构建单页面的web 程序

    通过Web Api 和 Angular.js 构建单页面的web 程序 在传统的web 应用程序中,浏览器端通过向服务器端发送请求,然后服务器端根据这个请求发送HTML到浏览器,这个响应将会影响整个的 ...

  3. 【AnjularJS系列2 】— 表单控件功能相关指令

    第二篇,表单控件功能相关指令. ng-checked控制radio和checkbox的选中状态 ng-selected控制下拉框的选中状态 ng-disabled控制失效状态 ng-multiple控 ...

  4. javaWeb中怎么获取提交表单里面的值

    在javaWeb中如何获得html文件中的表单里面的值? <!DOCTYPE html> <html> <head> <meta charset=" ...

  5. 我和小美的撸码日记(3)之一句话搞定MVC表单页数据绑定与提交

    “尼玛哥,你今天有空么?” “今天周日呀,怎么会没空,你这是要约么?麻辣烫凉皮我都吃,在哪儿,我一会儿就到.” “约你妹呀,我昨天都加一天班了,东西到现在还没搞完,你给我快点过来呀,我需要你!” “别 ...

  6. 我和小美的撸码日记(3)之中的一个句话搞定MVC表单页数据绑定与提交

    另外献上在<线体验Demo地址>希望大家也能从中得到一些启示. 地址:http://121.40.148.178:8080/ . username:guest,password:12345 ...

  7. Dynamics CRM 2015Online Update1 new feature之表单页Tabs切换

    CRM2011的界面相对于CRM4.0进行了比较大的改动,N久没见过4.0的界面了所以忘了表单是什么样子的了,但2011的表单中若含有多个tab的话,是可以通过左侧栏进行切换,话说2013的界面相对2 ...

  8. CURL模拟表单post提交及相关常用参数的使用(包括提交表单同时上传文件)

    转载自:https://blog.csdn.net/freedomwjx/article/details/43278157 (注:在curl前面加上time如time curl xxx,可以在最后显示 ...

  9. 让ie10/11支持非单页面的vue/es6

    为了满足某些客户的要求,最近让前端同学实现了ie 10(windows 7)/11(windows 10)支持多页面的vue/es6,基本参考如下: https://www.cnblogs.com/n ...

随机推荐

  1. angular_$inject

    <!DOCTYPE HTML> <html lang="zh-cn" ng-app="MainApp"> <head> &l ...

  2. Jquery实现异步上传图片

    利用jQuery的ajax函数就可以实现异步上传图片了.一开始我是想在处理程序中,直接用context.Request.Files来获取页面中的input file,但是不知道为什么一次获取不了.网上 ...

  3. 超市管理系统—NABCD模型

    1) N (Need 需求) 需求分析: 超市的数据和业务越来越庞大,而计算机就是一种高效的管理系统,这就需要我们把超市的管理与计算机结合起来,从而超市管理系统应运而生.依靠现代化的计算机信息处理技术 ...

  4. new-nav-js

    'use strict';define([ 'jquery'], function($) { var nav = { init : function() { $("#burger-menu& ...

  5. UVA 10391 stl

    https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem& ...

  6. 详解Java中ArrayList、Vector、LinkedList三者的异同点

    转载:https://my.oschina.net/zzw922cn/blog/491631 一.ArrayList ArrayList是一个可以处理变长数组的类型,这里不局限于"数&quo ...

  7. FooTable高级的响应式表格jQuery插件

    FooTable是一个高级jQuery插件,允许开发者在触屏智能手机及平板电脑等小型设备上制作数据非常惊人的HTML表格.它可以将HTML表转换成可扩展的响应式表格,且通过单击某一行即可将该行数据隐藏 ...

  8. 【kAri OJ】wzt的树

    时间限制 1000 ms 内存限制 65536 KB 题目描述 改革春风吹满地,中国人民真争气!家庭联产承包责任制以后,全国人民争想发家致富.wzt于是包了一个山头来种植金丝楠木,花了好几年种了N棵树 ...

  9. Python装饰器笔记

    DRY(Don't Repeat Yourself)原则: 一般是指在写代码的时候尽量避免重复的实现.违反DRY原则导致的坏处很容易理解,例如维护困难,修改时一旦遗漏就会产生不易察觉的问题. 一.函数 ...

  10. 如何在ECSHOP前台后台中讲版权内容清除

    如何在ECSHOP前台后台中讲版权内容清除 作者:河南电脑学校网 点击次数:1065 发布时间:2012-02-02 20:13:58 一.ECSHOP前台显示的页面的版权在下面几个地方修改:(本人不 ...