小编Ali*_*ias的帖子

JavaScript和jQuery在循环中解析JSON

很抱歉问这个问题,即使看了其他问题我也无法让它工作......

我在"json.php"中有一个JSON输出,例如:

    [
       {"serverid":"1","servername":"Server One"},
       {"serverid":"2","servername":"Server Two"}
    ]
Run Code Online (Sandbox Code Playgroud)

我有一个脚本,用于获取数据并将其解析为变量

var servers;
jQuery.get('json.php', function(data) {
     servers =    JSON.parse(data);
     jQuery('#servers').servers.servername
});
Run Code Online (Sandbox Code Playgroud)

我有一个div输出结果:

<div id="servers"></div>
Run Code Online (Sandbox Code Playgroud)

无论我尝试什么,我总会得到一些

"未捕获的TypeError:无法读取未定义的属性'servername'错误.

我也想看看结果,但我甚至无法打印出来.

再次抱歉这样的另一个问题

html javascript jquery json

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

Laravel:在自定义类中重定向?

我不确定这是"正确的"做事方式,但逻辑是有效的.我在Laravel设置中拥有自己的课程,我use在控制器中.在我的控制器中,我在自定义类中调用一个函数,但是如果在该函数中发生某些事情,我想重定向用户.

在IRC上聊天后,我告诉你不能在你自己的课程中进行重定向,你必须" 从控制器返回重定向响应对象".

不完全确定这意味着什么,但我想你必须从控制器那里做重定向.

代码(简化,它正在工作):

Controller method:

    // Validate the incoming user
    $v = new SteamValidation( $steam64Id );

    // Check whether they're the first user
    $v->checkFirstTimeUser();
Run Code Online (Sandbox Code Playgroud)

这将转到我的SteamValidation类(app/Acme/Steam/SteamValidation.php和namespaced),它会检查:

public function checkFirstTimeUser() {

    // Is there any users?
    if( \User::count() == 0 ) {

        $user_data = [
           // Data
        ];

        // Create the new user
        $newUser = \User::create( $user_data );

        // Log that user in
        \Auth::login($newUser);

        // Redirect to specific page
        return \Redirect::route('settings');
    }

    return;
}
Run Code Online (Sandbox Code Playgroud)

现在,如果计数超过0,那么它只会返回控制器,我很乐意继续.但是,如果它是一个新用户并且我尝试进行重定向(return \Redirect::route('settings'); …

php laravel

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

AngularJS日期过滤器firefox/safari问题

我在使用支持日后缀的自定义过滤器在Firefox和Safari中正确显示日期时遇到问题.我以以下格式获取UTC日期:

yyyy-mm-dd hh-mm-ss

然后我有一个自定义DateFilter,取代oo后缀,即2nd:

var suffixes = ["th", "st", "nd", "rd"];

return function(input, format) {
    input = new Date(input).getTime();
    var dtfilter = $filter('date')(input, format);
    var day = parseInt($filter('date')(input, 'dd'));
    var relevantDigits = (day < 30) ? day % 20 : day % 30;
    var suffix = (relevantDigits <= 3) ? suffixes[relevantDigits] : suffixes[0];

    return dtfilter.replace('oo', suffix);
};
Run Code Online (Sandbox Code Playgroud)

这适用于Chrome,我将以下内容传递到我的模板中,并获得预期日期:

{{ date.date_utc | DateFilter:'EEEE MMMM doo yyyy' | uppercase }} = SATURDAY NOVEMBER 1ST 2014

在Firefox/Safari上,它返回为: …

javascript date angularjs

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

Bootstrap - 在文档准备好时显示popover

在我的应用程序中,当用户登录并浏览他们的名字时,导航栏的右上角会显示头像.例:

<li>
   <a class="btn" href="#">
       <img id="user-avatar" src="{{ $userAvatar }}" alt="" /> {{ $userNickname }}
   </a>
</li>
Run Code Online (Sandbox Code Playgroud)

但是我希望弹出窗口显示5秒,低于用户名/头像区域,显示"您已成功登录".这是可能的,因为我有一个成功登录后仅为页面设置的会话(在页面被更改/刷新后它被销毁).

我的计划是已经在列表项上设置了popover属性,并且当设置登录会话时,它会运行一些javascript来触发弹出窗口:

<li id="popover" rel="popover" data-content="You Logged In" data-original-title="Success!">
   <a class="btn" href="#">
      <img id="user-avatar" src="{{ $userAvatar }}" alt="" /> {{ $userNickname }}
   </a>
</li>
@if (Session::has('login_success'))
    <script type="text/javascript">
       $(document).ready(function() {
          $('#popover').popover();
       });
    </script>
@endif
Run Code Online (Sandbox Code Playgroud)

我知道我错过了数据动画="底部",但无论我做什么都没有发生!

html jquery twitter-bootstrap

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

循环图像

我知道这很多,但我无法让它工作:/

    <div class='container'>
        <img src="images/1.jpg" alt="">
        <img src="images/2.jpg" alt="">
    </div>
Run Code Online (Sandbox Code Playgroud)

所以我有 2 个图像,下面的 CSS 被固定为浏览器窗口的完整大小:

        <style type="text/css">
        .container {
            position:fixed; 
            top:-50%; 
            left:-50%; 
            width:200%; 
            height:200%;
        }
        .container img {
            position:absolute; 
            top:0; 
            left:0; 
            right:0; 
            bottom:0; 
            margin:auto; 
            min-width:50%;
            min-height:50%;
        }
    </style>
Run Code Online (Sandbox Code Playgroud)

目前,它仅显示以全尺寸显示的最后一张图像 (2)。但是,我想使用一些 jQuery 来显示第一个,然后在 X 秒后淡出数字 1 并在每个图像中循环淡出。我认为最好使用 setInterval,然后使用淡入淡出和淡入淡出图像,但无论我做什么都不起作用。

我试图沿着这条线走下去:

        <script type="text/javascript">
        $(document).ready(function() {

            $('.container').children('img').each(function(i) { 
                $(this).fadeOut();
            }); 

        });
    </script>
Run Code Online (Sandbox Code Playgroud)

html css jquery

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

Laravel 4 - 全球宣布课程?

我正在使用Laravel 4项目中的"Steam Condenser"软件包.用户登录我的应用程序后,我会设置一个带有ID(steamId)的会话.此ID可用于获取各种数据(名称,头像等),例如:

$steamUser = new SteamId( Session::get('steamId') );
$username = $steamUser->getNickname();
Run Code Online (Sandbox Code Playgroud)

现在这个工作,但是我将在很多页面上(以及在控制器中)使用这些数据.我不想做的是每次都宣布一个新课 - 所以我的问题是:

  • 可以创建SteamId,所以在我的控制器中我只需要说$username = $steamUser->getNickname();- 显然只有当它(Session::has('steamId'))是真的.

我看到两种方法:

  1. 通过__constructor,但我不能让它工作(失败可怕).
  2. 通过路由过滤器.因此,创建一个新的过滤器名称,并为每个路由做一个'before' => 'filter'.然而,这可能会变得过度.

我希望这是有道理的(我的PHP知识不是那么好) - 基本上我不想一直这么做new SteamId( Session::get('steamId') );!

php laravel

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

Laravel - 在自己的类中使用存储库

在 Laravel 4 中,我有几个接口当前绑定到 Eloquent 存储库。在我的控制器中,我会这样做:

use Acme\Repositories\User\UserRepository;

class UserController extends BaseController {

    /**
     * @var UserRepository
     */
    protected $users;


    public function __construct(UserRepository $users)
    {
        $this->users = $users;
    }
Run Code Online (Sandbox Code Playgroud)

然后我可以访问我的自定义方法以使用 Eloquent 获取数据。

但是,我如何在自己的课堂上做到这一点?

use Acme\Repositories\Notification\NotificationRepository;
use Acme\Services\ServiceInterface;

class HipChatService implements ServiceInterface {

    protected $notifications;

    public function __construct(NotificationRepository $notifications)
    {
        $this->notifications = $notifications;
    }
Run Code Online (Sandbox Code Playgroud)

要在路线中进行测试:

use Acme\Services\HipChat\HipChatService;

Route::get('hipchat', function()
{
    $h = new HipChatService();
});
Run Code Online (Sandbox Code Playgroud)

然后我得到错误:

Argument 1 passed to Acme\Services\HipChat\HipChatService::__construct() must be an instance of Acme\Repositories\Notification\NotificationRepository, none given

现在我明白为什么会发生这种情况,但是我应该如何在我自己的类中使用存储库?我怎样才能调用控制器+方法而不发生这种情况?

干杯

php repository-pattern laravel

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

jQuery提交'this'表单

我正在尝试提交表单,一旦用户已经接受他们想继续通过jQuery UI对话框.

<form method="POST" action="url" onsubmit="return APP.dom.confirm(this);">
   <button type="submit" class="btn btn-sm btn-danger"><i class="fa fa-trash"></i></button>
</form>
Run Code Online (Sandbox Code Playgroud)

我的APP.dom.confirm方法看起来像:

 confirm: function(form) {
    $("#dialog-confirm").dialog({
       modal: true,
       buttons: {
          "Confirm": function() {
             $(form).submit();
          },
          "Cancel": function() {
             $(this).dialog("close" );
          }
       }
    });

    return false;
 }
Run Code Online (Sandbox Code Playgroud)

这是有效的,但是当他们点击确认我想要提交表单时.

$(form).submit();
Run Code Online (Sandbox Code Playgroud)

这不起作用.记录下来我得到了上面的HTML.我试过各种变化,但无济于事:

$(form).clostest('form').submit();
Run Code Online (Sandbox Code Playgroud)

我该如何提交this

javascript jquery

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

Gulp Browserify在每次保存/更改时需要更长的时间来编译

我正在尝试使用Browserify来加速我的Gulp工作流程.我正在关注此博文:http: //christianalfoni.github.io/javascript/2014/08/15/react-js-workflow.html

我有一切正常,变化最初非常快(500毫秒左右).

但是,每次保存文件时,此时间都会增加.我的任务:

gulp.task('browserify', function() {

var bundler = browserify({
    entries: ['./src/js/app.js'],
    debug: production,
    cache: {},
    packageCache: {},
    fullPaths: true
});

var watcher = watchify(bundler);

return watcher
    .on('update', function() {

        var updateStart = Date.now();

        function transform(next) {
          console.log('JavaScript changed - recomiling via Browserify');
          watcher.transform(babelify).bundle()
          .pipe(source('bundle.js'))
          .pipe(gulp.dest('./build/scripts'))
          .on('end', next);
        }

        transform(function() {
          gulp.start('usemin');
          console.log('Complete!', (Date.now() - updateStart) + 'ms');
        });

    })
    .transform(babelify)
    .bundle()
    .pipe(source('bundle.js'))
    .pipe(gulp.dest('./build/scripts'));
Run Code Online (Sandbox Code Playgroud)

所以在第一次构建时,大约需要3秒钟(这包括一个文件).

然后,在文件更改时:

JavaScript changed - recomiling via Browserify
[11:31:24] Starting 'usemin'...
Complete! 608ms …
Run Code Online (Sandbox Code Playgroud)

javascript npm browserify gulp

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

Laravel Crypt 值在每次重新加载时发生变化

我正在尝试使用 Laravel 的Crypt功能,简单地将一个值存储在数据库中并稍后获取以使用。但是我注意到我无法解密这个值。

我的应用程序密钥是一个随机的 32 个字符的字符串。我的密码是MCRYPT_RIJNDAEL_128. 从 PHP 信息来看,已经安装了 MCRYPT,并且支持 RIJNDAEL_128。

为了测试,我在 GET rou 上执行以下操作:

$t = "123456789";

var_dump(Crypt::encrypt($t));
Run Code Online (Sandbox Code Playgroud)

见:http : //laravel.io/bin/2e9Xr#

在每次页面刷新时,输出都是不同的值,这显然是不正确的 - 但我不知道为什么。

我使用EasyPHP作为我的开发服务器。然而,我注意到的一件事是,与生产环境中的 Apache Web 服务器相比,应用程序请求在此环境中明显变慢。

这让我想知道是否每次都进行某种环境刷新,可能会重置 MCRYPT 用于加密的“资源”,因此每次都不同。

有什么线索吗?

php mcrypt laravel

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