我需要评估 JavaScript 函数中的 razor 变量。鉴于以下代码:
@{var unseenNotificationsExist = false;}
@foreach(var notification in viewModel)
{
if (notification.WasSeen == false)
{
unseenNotificationsExist = true;
break;
}
}
Run Code Online (Sandbox Code Playgroud)
我需要unseenNotificationsExist像这样在 JavaScript 中评估变量:
if(@unseenNotificationsExist == true)
$('#unseenNotifCount').addClass('notifNotSeen');
Run Code Online (Sandbox Code Playgroud)
但是,当我调试 JavaScript 代码时,我得到以下信息:
if(True == true)
Run Code Online (Sandbox Code Playgroud)
而且我收到以下错误:
未捕获的 ReferenceError True 未定义
使用 Guzzle 执行 http 请求后,我想打印所有响应标头。我怎样才能做到这一点?
在 guzzle 文档中指出该getHeaders()方法应该能够将标头转换为字符串,但是
<?php
print $response->getHeaders();
?>
Run Code Online (Sandbox Code Playgroud)
不起作用。还指出GuzzleHttp\Message\Response应该有一个方法被调用getRawHeaders(),它应该将标题作为字符串返回,但是 php 告诉我该方法在 Response 对象上未定义。那么,如何完成将所有响应标头打印为字符串的任务?
我需要知道使用服务容器标记的目的是什么以及如何通过示例使用它,这是我到目前为止所尝试的。
class MemoryReport
{
}
class SpeedReport
{
}
class ReportAggregator
{
public function __construct(MemoryReport $memory, SpeedReport $speed)
{
}
}
App::bind('MemoryReport', function () {
return new MemoryReport;
});
App::bind('SpeedReport', function () {
return new SpeedReport;
});
App::tag(['MemoryReport', 'SpeedReport'], 'reports');
App::bind('ReportAggregator', function ($app) {
return new ReportAggregator($app->tagged('reports'));
});
$reportAggregator = resolve('ReportAggregator');
dd($reportAggregator);
Run Code Online (Sandbox Code Playgroud)
这是我得到的错误。
传递给 ReportAggregator::__construct() 的参数 1 必须是 MemoryReport 的实例,给出的 Illuminate\Container\RewindableGenerator 的实例,在 /media/mazzam/9068A9DC68A9C0F81/M.azzam/Learning/laravel/00 Tutorial/tut/routes/ 中调用web.php 第 80 行
在Laravel的服务容器中,我可以绑定单例和实例。来自 Laravel文档:
绑定单例
单例方法将一个类或接口绑定到容器中,该容器只应解析一次。一旦解析了单例绑定,后续调用容器时将返回相同的对象实例:
Run Code Online (Sandbox Code Playgroud)$this->app->singleton('HelpSpot\API', function ($app) { return new HelpSpot\API($app->make('HttpClient')); });
绑定实例
您还可以使用实例方法将现有对象实例绑定到容器中。给定的实例将始终在后续调用容器时返回:
Run Code Online (Sandbox Code Playgroud)$api = new HelpSpot\API(new HttpClient); $this->app->instance('HelpSpot\API', $api);
Q1)那么这两个概念有什么区别?我可以猜测,对于单例绑定,Laravel 在第一次请求时通过内部服务容器机制构建对象本身,然后在后续调用中提供它,而在实例绑定的情况下,服务容器会显式地给出一个已经构建的对象,它在每个要求?
或者还有其他的解释吗?
Q2)为什么我们需要这两种绑定选项?
我正在尝试从音频创建波形视频。我的目标是制作一个看起来像这样的视频
对于我的测试,我有一个播放短片声音的 mp3。有 4 个 1/4 音符小节和 4 个 1/8 音符小节以 120bpm 播放。我在想出正确的预处理和过滤组合以生成看起来像图像的视频时遇到了一些麻烦。颜色不必精确,我更关心节拍的形状。我使用 showwaves 和 showspectrum 尝试了几种不同的方法。我无法完全理解为什么在使用 showwaves 时节拍过得如此之快,但使用 showspectrum 会生成一个视频,我可以在其中看到每个节拍。
秀波
ffmpeg -i beat_test.mp3 -filter_complex "[0:a]showwaves=s=1280x100:mode=cline:rate=25:scale=sqrt,format=yuv420p[v]" -map "[v]" -map 0:a output_wav.mp4
Run Code Online (Sandbox Code Playgroud)
此链接将下载该命令的输出。
显示频谱
ffmpeg -i beat_test.mp3 -filter_complex "[0:a]showspectrum=s=1280x100:mode=combined:color=intensity:saturation=5:slide=1:scale=cbrt,format=yuv420p[v]" -map "[v]" -an -map 0:a output_spec.mp4
Run Code Online (Sandbox Code Playgroud)
此链接将下载该命令的输出。
我发布了简单的示例,因为我不想通过添加我尝试过的所有变体来混淆问题。
在实践中,我想我可以摆脱 showspectrum 的输出,但我想了解我在哪里/如何错误地思考这个问题。感谢您的任何建议。
这是源音频文件的链接。
需要通过一个例子来了解 Laravel 服务容器和服务提供者。
我很想知道 JavaScript 中是否有 python 类型元组。我正在开发一个项目,我只需要使用对象列表而不是数组。
我在一个具有活动类的类中有一个链接。我想找到该活动类的下一个链接并在新链接中添加活动类。我尝试使用next()函数,但它不起作用。
$("#next").on("click", function() {
$(".test a.active").next(".test a").addClass("active");
});Run Code Online (Sandbox Code Playgroud)
.active { color: red; }Run Code Online (Sandbox Code Playgroud)
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="test"><a href="" class="testx active">a</a></div>
<div class="test"><a href="" class="testx">b</a></div>
<div class="test"><a href="" class="testx">c</a></div>
<div class="test"><a href="" class="testx">d</a></div>
<div class="test"><a href="" class="testx">e</a></div>
<button id="next">click</button>Run Code Online (Sandbox Code Playgroud)
我有下拉列表。我想将“标题 1234 ”放在下拉列表的第一个位置。重要的是,当选择“标题1234”时,它的值为1234。我应该怎么做?
要像这样得到它:
现在列表看起来像这样:
Vue.createApp({
data: () => ({
model: 'title 1234',
options: {
1234: 'title 1234',
1: 'title 1',
2: 'title 2',
3: 'title 3',
10: 'title 10',
},
})
}).mount('#app')Run Code Online (Sandbox Code Playgroud)
<div id="app">
<select v-model="model">
<option v-for="option in options">
{{ option }}
</option>
</select>
<span>Value: {{ model }}</span>
</div>
<script src="https://unpkg.com/vue@next"></script>
<script src="app.js"></script>Run Code Online (Sandbox Code Playgroud)
正如我们已经知道的,数组和对象之间的区别之一是:
“如果你想提供特定的键,唯一的选择是一个对象。如果你不关心键,那就是一个数组”(在这里阅读更多)
此外,根据MDN 的文档:
数组不能使用字符串作为元素索引(如在关联数组中),但必须使用整数
然而,令我惊讶的是:
> var array = ["hello"]; // Key is numeric index
> array["hi"] = "weird"; // Key is string
content structure looks like: ["hello", hi: "weird"]
Run Code Online (Sandbox Code Playgroud)
数组的内容结构看起来很奇怪。更重要的是,当我检查它返回的数组类型时true
Array.isArray(array) // true
Run Code Online (Sandbox Code Playgroud)
问题:
javascript ×5
laravel ×3
php ×3
arrays ×1
asp.net-mvc ×1
css ×1
ffmpeg ×1
guzzle ×1
html ×1
html-select ×1
http ×1
jquery ×1
laravel-5.7 ×1
object ×1
razor ×1
syntax ×1
tagging ×1
vue.js ×1