2015-05-18 34 views
0

我正在使用Laravel的刀片模板引擎,并在@section('脚本')中编写我的特定于页面的代码并将其放在主模板上。根据当前页面启用JavaScript

问题在于,代码包含在内联中,并且我无法像使用全局js代码和库一样缩小/连接此代码。

有没有一种方法可以包含应用程序的所有JS,并且只运行基于页面/路径的特定部分(如果需要,我可以在我的视图中设置一个变量)。

这将允许我有一个缓存的JS文件。

所以,树立了一个路线变量在全球范围内,然后做这个,唯一的解决办法:

if(route == 'home') { 
    // js specific to homepage 
} 

if(route == 'login') { 
    // js specific to login 
} 

回答

0

我建议的2个选项之一,

  1. 根据服务器端技术使用 - 您应该能够创建一个JS端点,根据您建议的条件发送JS(将路由作为路径信息传递给端点)(请参阅此答案中的第2点(基于Java作为服务器端技术 - https://softwareengineering.stackexchange.com/a/283676/173234

  2. 使用AJAX下载所需的JS文件 - 像AngularJS这样的框架,甚至Dojo都可以为您提供开箱即用的功能。

0

查看Paul Irish的DOM-Based Routing。我首先在Sage中了解到这种技术,这是一个WordPress初学者主题,它使用body类来路由这些函数。在你的情况下,你可以在你的视图中设置一个变量,然后用它来执行你希望使用他的技术的任何函数。