小编Pal*_*diN的帖子

Laravel混合未捕获ReferenceError:jQuery未定义

我正在使用laravel mix捆绑我的js库和代码。我正在尝试使用ES6样式的导入,并尽可能使用ES6代码。我还需要导入jQuery及其库。

因此,我已经导入了jQuery和bootstrap,如下所示:

import "jquery";
import "bootstrap";
Run Code Online (Sandbox Code Playgroud)

起初,当我导入它们时,我得到了:

Uncaught ReferenceError: jQuery is not defined
    at Object../node_modules/bootstrap/js/transition.js (vendor.js?id=74f7f0c463b407c6bdf5:2449)
Run Code Online (Sandbox Code Playgroud)

这是由于引导程序未获取jQuery。

为了解决这个问题,我添加了此配置以将$,jQuery替换为jquery

mix.webpackConfig(webpack => {
    return {
        plugins: [
            new webpack.ProvidePlugin({
                $: 'jquery',
                jQuery: 'jquery',
                'window.jQuery': 'jquery',
            })
        ]
    };
});
Run Code Online (Sandbox Code Playgroud)

这适用于所有需要jQuery的脚本和库。

现在问题出在我们添加的其他脚本中,而没有使用单个js或使用blade部分来混合。

@section('scripts')
    <script type="application/javascript">
        window.onload = function() {
            if (window.jQuery) {
                // jQuery is loaded
                console.log("Yeah!");
            } else {
                // jQuery is not loaded
                console.log("Doesn't Work");
            }
        }
       $().ready(function () {
        console.log('works');
      })
    </script>
@endsection
Run Code Online (Sandbox Code Playgroud)

控制台错误显示:

datatables:125 Uncaught ReferenceError: $ is …
Run Code Online (Sandbox Code Playgroud)

jquery laravel laravel-mix

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

检查拦截器的角度路线

我有一个配置为的路由路径:

{
    path: 'user/:id/edit/:type',
    component: UserEditTypeComponent,
},
Run Code Online (Sandbox Code Playgroud)

我想到达拦截器的路径,可以从激活的路径访问该拦截器,如下所示:

constructor(private activatedRoute: ActivatedRoute) {
}

ngOnInit() {
    console.log(this.activatedRoute.routeConfig.path);
}
Run Code Online (Sandbox Code Playgroud)

这将导致在user/:id/edit/:type控制台中返回此路径。

我想从拦截器获得与我尝试的相同的路径:

intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
    let ar = this.injector.get(ActivatedRoute);
    console.log(ar.routeConfig.path);
}
Run Code Online (Sandbox Code Playgroud)

这将返回错误为:Cannot read property 'path' of null。我已删除路径并进行测试,发现routeConfig为空。

我们如何在拦截器内部获得激活的路线?

还有其他方法可以访问pathin拦截器吗?

如果问题不清楚,可以用更多信息进行更新。

angular angular-activatedroute

5
推荐指数
2
解决办法
1913
查看次数

composer从两个composer.json文件安装

我有多个composer.json具有多个单独的依赖关系,并希望composer.json使用单个composer install命令在两者中安装所有依赖项.

位置是这样的:

| - composer.json
| - Custom
    | - Package1
        | - composer.json
Run Code Online (Sandbox Code Playgroud)

第一个composer.json

{
    "name": "laravel/laravel",
    "description": "The Laravel Framework.",
    "keywords": ["framework", "laravel"],
    "license": "MIT",
    "type": "project",
    "require": {
        "php": ">=5.6.4",
        "barryvdh/laravel-debugbar": "^2.3",
        "laravel/framework": "5.4.*",
        "laravel/tinker": "~1.0",
        "laravelcollective/html": "^5.4.0"
    },
    "require-dev": {
        "fzaninotto/faker": "~1.4",
        "mockery/mockery": "0.9.*",
        "phpunit/phpunit": "~5.7",
        "symfony/css-selector": "3.1.*",
        "symfony/dom-crawler": "3.1.*"
    },
    "autoload": {
        "classmap": [
            "database"
        ],
        "psr-4": {
            "App\\": "app/",
        }
    },
    "autoload-dev": {
        "psr-4": {
          "Tests\\": …
Run Code Online (Sandbox Code Playgroud)

php vendor composer-php laravel-5

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

创建一个可用于角度4模板的全局函数

我想创建一个可以在角度模板中使用的可重用函数.我创建了一个函数:

 export function stringSplit(string : string, separator : string = '/') : any {
    return string.split(separator);
}
Run Code Online (Sandbox Code Playgroud)

我试图像这样添加到模板中:

<p> stringSplit('hello/user') </p>
Run Code Online (Sandbox Code Playgroud)

但我得到这个错误:

ERROR TypeError: _co.stringSplit is not a function
Run Code Online (Sandbox Code Playgroud)

我不确定如何在角度中创建和使用全局函数.

我们可以角度执行此操作吗?

在这种情况下,最佳解决方案是什么?

typescript angular2-template angular

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

Angular Router导航和重新加载需要渲染一次组件,但渲染两次

我有一个特殊情况,我需要重定向到一个网址并重新加载.

我从路由器使用此方法:

this.router.navigateByUrl('login');
this.reload();
Run Code Online (Sandbox Code Playgroud)

this.reload()角度区域外工作的函数在哪里强制重新加载页面.我需要强制重新加载,因为我无法控制来自服务器的一些资产.

重新加载的代码是:

public reload(): any {
    return this.zone.runOutsideAngular(() => {
        location.reload()
    });
}
Run Code Online (Sandbox Code Playgroud)

问题是:

我在开头导航到登录,然后重新加载页面,这是默认行为.

所需输出:

只需导航而不渲染组件并重新加载,就像我们点击一​​些未经授权的URL时,我们会被重定向到大多数站点的登录页面.

angular2-routing angular

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

Angular 2 Unhandled Promise rejection:模板解析错误:'app-main'不是已知元素:

我有两个独立的模块app.module.ts,core.module.ts用于加载两个选择器appapp-main.

文件夹结构如下:

|main.ts
|-App
|  |-app.module.ts
|  |-Components
|    |-app.component.ts
|
|-Core
|  |-core.module.ts
|  |-Components
|    |-core.component.ts
Run Code Online (Sandbox Code Playgroud)

main.ts

import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
import { enableProdMode } from '@angular/core';
import { AppModule } from './App/app.module';
if (process.env.ENV === 'production') {
    enableProdMode();
}
platformBrowserDynamic().bootstrapModule(AppModule);
Run Code Online (Sandbox Code Playgroud)

app.module.ts

import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { CoreModule } from '../Core/core.module';
import { AppComponent } from './Components/app.component';
@NgModule({
    imports: …
Run Code Online (Sandbox Code Playgroud)

angular2-template typescript2.0 angular2-modules angular

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

尝试在 Laravel 的控制器存储方法中分配非对象的属性

我是 Laravel 的新手,请帮我解决这个问题

我在控制器中有存储方法并尝试在该方法中设置属性

public function store(Request $request) {

    $configuration = $this->validate(request(), [
      'device_name' => 'required',
      'sn' => 'required'
    ]);

    $configuration->timezone = "+4"; 
    configuration::create($configuration);

    return back()->with('success', 'configuration has been added');
}
Run Code Online (Sandbox Code Playgroud)

但是当我尝试提交请求时出现此错误

尝试分配非对象的属性

我在上面的方法中做错了什么?

php controller store laravel

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