小编Gre*_*reg的帖子

使用Ajax选择2 4.0.0初始值

我有一个从Ajax数组填充的select2 v4.0.0.如果我设置select2的val我可以通过javascript调试看到它已经选择了正确的项目(在我的情况下为#3),但是这没有显示在选择框中,它仍然显示占位符. 在此输入图像描述

我应该看到这样的事情: 在此输入图像描述

在我的表单字段中:

<input name="creditor_id" type="hidden" value="3">
<div class="form-group minimal form-gap-after">
    <span class="col-xs-3 control-label minimal">
        <label for="Creditor:">Creditor:</label>
    </span>
    <div class="col-xs-9">
        <div class="input-group col-xs-8 pull-left select2-bootstrap-prepend">
            <select class="creditor_select2 input-xlarge form-control minimal select2 col-xs-8">
                <option></option>
            </select>
        </div>
    </div>
</div>
Run Code Online (Sandbox Code Playgroud)

我的javascript:

var initial_creditor_id = "3";
$(".creditor_select2").select2({
    ajax: {
       url: "/admin/api/transactions/creditorlist",
       dataType: 'json',
       delay: 250,
       data: function (params) {
           return {
                q: params.term,
                c_id: initial_creditor_id,
                page: params.page
           };
       },
       processResults: function (data, page) {
            return {
                results: data
            };
       },
       cache: true
   }, …
Run Code Online (Sandbox Code Playgroud)

jquery-select2-4

96
推荐指数
6
解决办法
12万
查看次数

Laravel hasManyThrough

我正在努力通过laravel了解hasManyThrough概念.我有三张桌子:

Bookings
    -id (int)
    -some other fields

Meta
    -id (int)
    -booking_id (int)
    -metatype_id (int)
    -some other fields

MetaType
    -id (int)
    -name (string)
    -some other fields
Run Code Online (Sandbox Code Playgroud)

我想要得到的是一个Eloquent模型,它允许我拥有一个包含MetaType类型的多个Meta记录的预订记录.我认为hasManyThrough可能已经解决了这个问题,但现在我想,也许这不是最好的方法.

在我的预订模型中,我有

public function bookingmeta() {
    return $this->hasMany('bookingmeta','booking_id');
}

public function bookingmetatype() {
    return $this->hasManyThrough('bookingmetatype','bookingmeta','booking_id','bookingmetatype_id');
}
Run Code Online (Sandbox Code Playgroud)

但是这无法生成正确的SQL并失败.我明白了

select `new_bookingmetatype`.*, `new_bookingmeta`.`booking_id` 
from `new_bookingmetatype` 
inner join `new_bookingmeta` 
on `new_bookingmeta`.`bookingmetatype_id` = `new_bookingmetatype`.`id` 
where `new_bookingmeta`.`booking_id` in (57103)
Run Code Online (Sandbox Code Playgroud)

而我真正想要实现的是

select `new_bookingmetatype`.*, `new_bookingmeta`.`booking_id` 
from `new_bookingmetatype` 
inner join `new_bookingmeta` 
on `new_bookingmeta`.`id` = `new_bookingmetatype`.`bookingmetatype_id`  
where `new_bookingmeta`.`booking_id` in (57103)
Run Code Online (Sandbox Code Playgroud)

如果有人能指出我正确的方向,我真的很感激.谢谢.

php laravel eloquent

14
推荐指数
1
解决办法
1万
查看次数

基于先前值的 Javascript 过滤器

我正在尝试重写 ES6 中的函数以对对象数组进行过滤。目前,代码循环遍历数组并将满足条件的数组成员复制到新数组,然后返回该新数组。该标准基于数组中的先前值。我想过滤掉对象的时间戳字段 < 4 分钟的所有数组项。

let final = [];
final.push(data[0]);

for (let i = 1, j = data.length; i < j; i++) {
    // if time difference is > 4 minutes add to our final array
    if (data[i].timestamp - data[i-1].timestamp > 240) {
        final.push(data[i]);
    }
}
return final;
Run Code Online (Sandbox Code Playgroud)

必须有更好的方法来做到这一点。我想过使用箭头函数,但我不知道迭代时如何访问前一个数组项对象的时间戳。

javascript arrays filter ecmascript-6

3
推荐指数
1
解决办法
6097
查看次数

使用 jQuery 设置选择选项的 HTML 数据属性

如何将 HTML 数据属性添加到 jQuery 生成的<select> <option>. 我有以下代码,它以编程方式设置<options>Ajax 查询结果中的选择。

$request.then(function (data) {
    var p_id = $("[name='property_id']").val() || -1;
    for (var d = 0, l = data.length; d < l; d++) {
       var item = data[d];
       var option = new Option(item.text, item.id, false, (item.id === p_id ? true : false));
       // this doesnt work
       option.data('data-owner_id') = item.owner_id;
       option.data('data-property_id') = item.property_id;
       $element.append(option);
    }
    $element.trigger('change');
});
Run Code Online (Sandbox Code Playgroud)

html javascript jquery custom-data-attribute

2
推荐指数
1
解决办法
3732
查看次数

Select2 Ajax调用失败,未使用ReferenceError:未定义require

Select2现在是否有require.js的先决条件要求,或者来自cdnjs.cloudfare.com的4.0.0-rc.2版本.我在第4582行的select2.js中遇到错误 -

未捕获的ReferenceError:未定义require.

我的代码相当简单:

<!DOCTYPE html> 
<html class="no-js" lang="en"> 
 <head> 
  <meta charset="utf-8"> 
  <title>Test Select2</title> 
  <link href="/css/normalize.css" rel="stylesheet"> 
  <link media="all" type="text/css" rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/select2/4.0.0-rc.2/css/select2.css"> 
 </head> 
 <body> 
  <!-- Main content --> 
   <section class="content"> 
    <form method="POST" action="http://test.local/test" accept-charset="UTF-8" role="form"> 
    <div class="form-group minimal"> 
     <span class="col-xs-3 control-label minimal"><label for="Test">Test:</label></span> 
     <div class="input-group col-xs-8 pull-left select2-bootstrap-prepend"> 
      <input type="hidden" 
                 id="test_select2" 
                 class="input-xlarge form-control minimal select2" 
                 data-placeholder="Search ACME" 
                 data-minimumInputLength=3 
                 data-width="copy" 
                 data-containterCssClass="form-control minimal" 
                 data-dropdownCssClass="alert-danger" 
                 data-allowClear="true" 
                 data-delay=250> 
     </div> 
    </div> 
   </section> 
   <!-- scripts --> 
   <script src="//code.jquery.com/jquery-2.1.3.min.js"></script> 
   <script>window.jQuery || document.write('<script src="/js/jquery/2.1.3.min.js"><\/script>')</script> 
   <script src="//code.jquery.com/ui/1.11.4/jquery-ui.min.js"></script> 
   <script src="//maxcdn.bootstrapcdn.com/bootstrap/3.3.4/js/bootstrap.min.js"></script> …
Run Code Online (Sandbox Code Playgroud)

jquery-select2-4

1
推荐指数
1
解决办法
3909
查看次数