2015-07-20 49 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