2015-07-20 81 views
1

我想在js文件中使用phalcon的动态路由。在js文件中的Phalcon路由

例如,我在js文件中有角度的js代码,我需要填充从控制器动作获得的对象列表listAction(/ users/list)或者我需要将更改推送到对象这是一个控制器动作saveAction(/用户/保存)。

我不喜欢硬编码在js文件的路径类似

$http.get("http://localhost/sample/users/list").success(function(response){ 
//my code here 
}); 

我想用尔康的路由器在js文件如下所示:现在我

$http.get("{{ url('users/list')").success(function(response){ 
//my code here 
}); 

通过创建一个部分.volt文件并将与该视图相关的所有JavaScript放在那里,将javascript与控制器操作的视图分开。

有没有更好的方法?有没有办法在js文件中访问phalcon路由器?我使用在Symfony中的FOSJsRoutingBundle有没有pha​​lcon的替代品?

回答

1

这是一个例子。在你的layout.volt

把块:

<html> 
<head> 
    {% include 'js.volt' %} 
    {% block js %}{% endblock %} 
</head> 
<body> 
    <script> 
     {% block include_js %}{% endblock %} 
    </script> 

    {% block content %}{% endblock %} 
</body> 
</html> 

js.volt:

<script src="path/to/js/file.js"></script> 

,并在您的视图(用户/ list.volt)做:

{% extends 'layout.volt' %} 

{% block js %} 
    <script src="path/to/js/another/js/file.js"></script> 
{% endblock %} 

{% block include_js %} 
    $http.get("{{ url('users/list')").success(function(response){ 
    //my code here 
    }); 
{% endblock %} 

{% block content %} 
BLABLABLA 
{% endblock %} 
+1

不过我不能在js文件中使用路由器。上面的代码是一个很好的视图结构,但我希望能够在javascript文件中执行$ http.get&$ http.post并在那里使用路由器,因为在js文件中有很多地方,我需要路由器。 – Sohrab

+2

这是如何与FOSJsRoutingBundle你可以给一个路由到JavaScript文件中的$ .get权: '$ .get(Routing.generate('my_route_to_expose',{id:10,foo:“bar”})) ;' – Sohrab

+0

不错:)工作 – num8er