我正在使用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) 我有一个配置为的路由路径:
{
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拦截器吗?
如果问题不清楚,可以用更多信息进行更新。
我有多个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) 我想创建一个可以在角度模板中使用的可重用函数.我创建了一个函数:
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)
我不确定如何在角度中创建和使用全局函数.
我们可以角度执行此操作吗?
在这种情况下,最佳解决方案是什么?
我有一个特殊情况,我需要重定向到一个网址并重新加载.
我从路由器使用此方法:
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时,我们会被重定向到大多数站点的登录页面.
我有两个独立的模块app.module.ts,core.module.ts用于加载两个选择器app和app-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) 我是 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)
但是当我尝试提交请求时出现此错误
尝试分配非对象的属性
我在上面的方法中做错了什么?
angular ×4
laravel ×2
php ×2
composer-php ×1
controller ×1
jquery ×1
laravel-5 ×1
laravel-mix ×1
store ×1
typescript ×1
vendor ×1