我网站上的所有页面都有相同的标题。我是这样实现的:
extends('layouts.main')
现在在某些页面中,我需要发送成功的消息,而在其他页面中则不需要。我是这样实现的:
return....->with(array(
sucessfulMessage => 'asdf'
));
请注意,我只是在某些页面而不是在所有页面中这样做。
现在我想在 JavaScript 中使用该变量。我在layout.main中这样做了:
<head>
{{ HTML::script('/js/jquery-2.1.1.js')}}
@if(isset($successfulMessage))
<script>
var successfulMessage = "{{$successfulMessage}}";
</script>
@endif
{{ HTML::script('/js/myPopupScript.js')}}
</head>
然后在 myPopupScript.js
中我这样做了:
$(document).ready(function(){
if(!typeof successfulMessage === 'undefined'){
alert(successfulMessage);
}else{
alert("test");
}
});
我的问题
即使已发送 successMessage,警报也始终为 test
。
重要说明
当我在 Google Chrome 中使用 F12 查看实际 HTML 时,我可以看到以下内容:
<script>
var successfulMessage = "asdf";
</script>
这样变量就被定义了。
最佳答案
对我有用的代码是这样的:
$(document).ready(function(){
var typeOfSuccessfulMessage = typeof successfulMessage;
if(typeOfSuccessfulMessage == 'string'){
alert(successfulMessage);
}else{
alert("undefined");
}
});
非常感谢@martinezjc、@lowerends 和@Cthulhu
关于JavaScript 变量在 Laravel 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25067593/