我的路线在这里
Route::get('/Service-Areas-Details/{ID}',
array(
'uses' => 'Web\ServiceAreas\ServiceAreaController@ServiceAreaDetails',
'as' => 'ServiceAreaDetails'
)
);
以下是我在Laravel中的代码。
<script language="javascript">
$(document).ready(function() {
var $_token = "{!! csrf_token() !!}";
var data = {
"_token" : $_token,
};
$.ajax({
url: '{{URL::route("apiServiceAreas")}}',
method: "POST",
async: true,
data: JSON.stringify(data),
contentType: "application/json; charset=utf-8",
success: function (result) {
$.each(result.Data, function( key, ServiceArea ) {
var URL = '{!! route("ServiceAreaDetails", ["ID" => 1]); !!}';
});
}
});
});
</script>
讨论的重点是什么?
此代码中的值= 1是静态的。我们可以让它变得动态吗? var URL = '{!! route("ServiceAreaDetails", ["ID" => 1]); !!}';
问题是什么?
路由功能是服务器端编码。有没有办法将循环中的js值传递给这个服务器端函数参数?
Js值为ServiceArea.ID
答案 0 :(得分:1)
可能的解决方案:使用0作为占位符ID并根据需要进行替换。
根据需要为正则表达式添加限制,或者在替换URL的错误部分时使用更独特的占位符。
$.each(result.Data, function( key, ServiceArea ) {
var URL = '{!! route("ServiceAreaDetails", ["ID" => 0]); !!}';
URL = URL.replace(/0/, ServiceArea.ID);
});
答案 1 :(得分:0)
我刚刚使用2个选项修复了它。
方法1
var asset = '{!! URL::asset("Service-Areas-Details") !!}';
方法2
通过使tanerkuc
告知参数可选Route::get('/Service-Areas-Details/{ID?}',
array(
'uses' => 'Web\ServiceAreas\ServiceAreaController@ServiceAreaDetails',
'as' => 'ServiceAreaDetails'
)
);