小编Mat*_*aly的帖子

使用PhoneGap在Android中禁用菜单按钮

我正在使用PhoneGap和jQuery Mobile构建我的第一个移动应用程序,我遇到了一个小问题.

我一直在Android上测试它,无论是在物理设备还是模拟器上.由于此应用程序非常简单,并且没有任何设置方式,我想禁用"菜单"按钮.

现在,我从PhoneGap文档中得到的印象是,您需要为menubutton事件添加事件侦听器以覆盖默认行为,并使用preventDefault来停止发生的默认操作.尽我所能,我似乎无法让它工作.我为它编写的代码是在JSFiddle上.

这可能吗?如果是这样,任何想法我哪里错了?

编辑:应该真的提到版本 - 我正在使用PhoneGap 2.0.

javascript cordova

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

使用Puppet和Vagrant配置Apache

我在项目中第一次使用Vagrant和Puppet而且我一直遇到问题.

我使用PuPHPet作为起点,我在default.pp清单中有以下代码段:

class { 'apache': }

apache::dotconf { 'custom':
  content => 'EnableSendfile Off',
}

apache::module { 'rewrite': }

apache::vhost { 'awesome.dev':
  server_name   => 'awesome.dev',
  serveraliases => [
],
  docroot       => '/var/www',
  port          => '80',
  directories => [ { path => '/var/www/', allow => 'from all', allow_override => ['All'] }   ],
  env_variables => [],
  priority      => '1',
}
Run Code Online (Sandbox Code Playgroud)

当我运行它时,我总是得到以下错误:

warning: Could not retrieve fact fqdn
Invalid parameter directories at /tmp/vagrant-puppet/manifests/default.pp:46 on node precise32
The following SSH command responded with a non-zero …
Run Code Online (Sandbox Code Playgroud)

apache puppet vagrant

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

"粘性"选择Angular应用程序

对于具有基于Angular的前端的应用程序,我有一个恼人的问题.某个选择框是"粘滞的" - 您必须选择两次选项才能更改它.这是一个重现问题的片段:

<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.5/angular.min.js"></script>
<script>
  var app = angular.module('myapp', []);

  app.controller('NewsCtrl', function($scope) {
    // Set news data
    $scope.news = {
      specific_for_dealership: '003'
    };

    // Get dealers
    $scope.dealers = [{
      id: 1,
      dealerid: '001',
      name: 'Volvo'
    }, {
      id: 2,
      dealerid: '002',
      name: 'Saab'
    }, {
      id: 3,
      dealerid: '003',
      name: 'Seat'
    }];
  });
</script>
<div ng-app="myapp">
  <div ng-controller="NewsCtrl">
    <form>
      <select name="specific_for_dealership" ng-model="news.specific_for_dealership">
        <option value="">All</option>
        <option ng-repeat="dealer in dealers" ng-selected="news.specific_for_dealership" value="{{ dealer.dealerid }}">{{ dealer.name }}</option>
      </select>
    </form>
  </div>
</div>
Run Code Online (Sandbox Code Playgroud)

知道出了什么问题以及如何解决这个问题?

javascript angularjs angularjs-ng-repeat

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

错误:使用Orchestra Testbench测试独立的Laravel软件包时,在route.php中找不到类“ Route”

我现在有一个奇怪的问题。

我目前正在在Github上的https://github.com/matthewbdaly/laravel-error-snapshot上构建一个Laravel软件包。我正在使用Orchestra Testbench软件包来单独测试该软件包以及它的BrowserKit扩展。

当我在本地运行测试套件时,它工作正常。但是,在Travis CI中,它将引发以下错误:

Error: Class 'Route' not found in /home/travis/build/matthewbdaly/laravel-error-snapshot/src/routes.php on line 3
Run Code Online (Sandbox Code Playgroud)

资源

所以我尝试在中明确导入Route门面routes.php。同样,它仅在本地工作,但返回了不同的错误消息:

PHP Fatal error:  Uncaught RuntimeException: A facade root has not been set. in /home/travis/build/matthewbdaly/laravel-error-snapshot/vendor/laravel/framework/src/Illuminate/Support/Facades/Facade.php:218
Run Code Online (Sandbox Code Playgroud)

资源

我真的不确定为什么它可以在一种环境下工作,而不能在另一种环境下工作。谁能对此有所启示?就我所知,这似乎不是Travis CI的临时问题,但我不确定还有什么问题。

编辑:这很有趣...

如果我安装Xdebug并在启用coverage的情况下运行测试,则可以在本地重现该错误:

PHP Fatal error:  Uncaught Error: Class 'Route' not found in /home/matthew/Projects/laravel-error-snapshot/src/routes.php:3
Stack trace:
#0 /home/matthew/Projects/laravel-error-snapshot/vendor/phpunit/php-code-coverage/src/CodeCoverage.php(1097): include_once()
#1 /home/matthew/Projects/laravel-error-snapshot/vendor/phpunit/php-code-coverage/src/CodeCoverage.php(269): SebastianBergmann\CodeCoverage\CodeCoverage->initializeData()
#2 /home/matthew/Projects/laravel-error-snapshot/vendor/phpunit/phpunit/src/Framework/TestResult.php(659): SebastianBergmann\CodeCoverage\CodeCoverage->start(Object(Tests\Feature\SnapshotTest))
#3 /home/matthew/Projects/laravel-error-snapshot/vendor/phpunit/phpunit/src/Framework/TestCase.php(894): PHPUnit\Framework\TestResult->run(Object(Tests\Feature\SnapshotTest))
#4 /home/matthew/Projects/laravel-error-snapshot/vendor/phpunit/phpunit/src/Framework/TestSuite.php(744): PHPUnit\Framework\TestCase->run(Object(PHPUnit\Framework\TestResult))
#5 /home/matthew/Projects/laravel-error-snapshot/vendor/phpunit/ in /home/matthew/Projects/laravel-error-snapshot/src/routes.php on line 3
Run Code Online (Sandbox Code Playgroud)

我认为这与Route门面没有以某种方式解决有关。

php laravel laravel-5

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

在jQuery中将对象的引用传递给回调函数

可能重复:
$ .ajax上下文选项

我有一些看起来像这样的代码:

$.post(self.baseUrl + 'api/method',
        {param1: data},
        function (response) {
            // Do something
        });
Run Code Online (Sandbox Code Playgroud)

我想将对自身对象的引用传递给回调,我想这会是这样的:

$.post(self.baseUrl + 'api/method',
        {param1: data},
        function (response, self) {
            // Do something
        });
Run Code Online (Sandbox Code Playgroud)

但是,它不能像这样工作,jQuery文档没有显示一种方法可以使这成为可能,粗略的谷歌搜索没有发现任何东西.这可能,我该怎么办?

javascript jquery callback

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

无法为Apollo客户端设置身份验证标头

我正在使用Laravel应用程序,该应用程序在客户端使用React和Redux,以及React预设和Mix。我决定尝试使用API​​的GraphQL,而不是通常的REST API方法,到目前为止,它的工作正常。但是,我现在陷入困境。

我将Apollo用作HTTP客户端,因为它是为与GraphQL一起使用而构建的。过去,我曾使用JWT Auth来保护API,因此自然而然也选择了这种方法,因为实现只是添加适当的标头的一种情况。我遵循了有关使用Apollo设置标题的说明,但是没有设置标题。这是有问题的JS文件:

import LinkList from './components/LinkList';
import React from 'react';
import ReactDOM from 'react-dom';
import {Container} from './container';
import {createStore} from 'redux';
import reducer from './reducer';
import {Provider} from 'react-redux';
import {fromJS} from 'immutable';
import ApolloClient from 'apollo-boost';
import gql from 'graphql-tag';
import { createHttpLink } from 'apollo-link-http';
import { setContext } from 'apollo-link-context';
import { InMemoryCache } from 'apollo-cache-inmemory';

const httpLink = createHttpLink({
    uri: window.initialData.graphql_route
});

const authLink = setContext((_, { headers }) …
Run Code Online (Sandbox Code Playgroud)

jwt apollo graphql

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

PHP文件中出现意外的$ end

我正在开发一个PHP联系表单,但我无法让它工作.我在Apache服务器日志中遇到以下错误,在Ubuntu服务器VM上运行:

PHP Parse error:  syntax error, unexpected $end in /home/matthew/Sites/contactFormResponse.php on line 75, referer: http://192.168.1.4/contactForm.php
Run Code Online (Sandbox Code Playgroud)

从谷歌搜索这个错误,听起来它通常是由于服务器没有设置识别它们时使用短PHP标签,或者是由于没有正确关闭的代码块.但据我所知,情况并非如此 - 据我所知,它已全部正确关闭.它引用的行是超过文件末尾的一行.

这是PHP代码:

 <?php
                                    error_reporting(E_ALL);
                                    // Define variables to hold the name, email address and message, and import the information into the variables
                                    $name = $_POST['NameInput'];
                                    $email = $_POST['EmailAddress'];
                                    $telno = $_POST['ContactNumber'];
                                    $querytype = $_POST['QueryType'];
                                    $bookingstartdate = $_POST['BookingStartDay'] . $_POST['BookingStartMonth'] . $_POST['BookingStartYear'];
                                    $bookingenddate = $_POST['BookingEndDay'] . $_POST['BookingEndMonth'] . $_POST['BookingEndYear'];
                                    $message = $_POST['QueryText'];

                                    // Validate the inputs - send it if it's OK
                                    if(3 < …
Run Code Online (Sandbox Code Playgroud)

php

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

Cache ::记得在Laravel 5中导致异常

我正在努力在Laravel 5中缓存查询.我编写了以下代码,它看起来与文档中的内容一致:

    // Get ID
    $id = Auth::id();

    // Get user
    $user = Cache::remember('user-' . $id, 5, function ($id) { 
        return User::find($id);
    });
Run Code Online (Sandbox Code Playgroud)

但它引发了以下错误:

Missing argument 1 for App\Providers\RouteServiceProvider::{closure}()
Run Code Online (Sandbox Code Playgroud)

知道我哪里出错了吗?

laravel laravel-5

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

防止道具更改时重置 useState 值

我有一个看起来像这样的组件:

//@flow
import React, { useState } from "react";

type Props = {
  likes: int,
  toggleLike: () => void,
};

const Foo = (props: Props) => {
  const [open, setOpen] = useState(false);
  const style = `item${open ? " open": ""}`;
  return (
    <div className={style} onMouseOver={() => setOpen(true)} onFocus={() => setOpen(true)} onMouseOut={() => setOpen(false)} onBlur={() => setOpen(false)}>
      <button onClick={props.toggleLike}>Toggle like</button>
    </div>
  );
};

export default Foo;
Run Code Online (Sandbox Code Playgroud)

open状态用于在鼠标悬停时应用“打开”类。如果我调用toggleLike()prop 函数,问题就来了,因为这会更新 props 并且组件被open重新渲染并重置为 false。由于样式使用过渡,这会导致动画重新运行,因为它变回 false,然后由于鼠标悬停在它上面而变为 true。

那么,如何防止在每次后续渲染时open …

reactjs react-hooks

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

toEqualData匹配器在AngularJS应用程序中断测试

我为AngularJS应用程序的服务编写了以下非常简单的测试:

describe('Services', function () { 

    beforeEach(function(){
        this.addMatchers({
            toEqualData: function(expected) { 
                return angular.equals(this.actual, expected);
            }
        });
    });

    beforeEach(module('myapp.services'));

    describe('Album service', function(){
        var Album;

        beforeEach(inject(function (_Album_) { 
            Album = _Album_;
        }));

        it('can get an instance of the Album factory', inject(function (Album) { 
            expect(Album).toBeDefined();
        }));
    });
});
Run Code Online (Sandbox Code Playgroud)

我刚刚在AngularJS文档中建议添加了自定义toEqualData匹配器.然而,这打破了测试.我正在使用Gulp来运行测试gulp-karma(虽然如果我直接使用Karma会出现同样的问题),并且我看到以下错误消息:

$ gulp test
[10:00:04] Using gulpfile ~/Projects/myapp/gulpfile.js
[10:00:04] Starting 'jshint'...
[10:00:04] Starting 'karma'...
WARN `start` method is deprecated since 0.13. It will be removed in 0.14. Please use
  server = new …
Run Code Online (Sandbox Code Playgroud)

jasmine angularjs gulp-karma

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