【问题标题】:Phalcon routes in js filesjs文件中的Phalcon路由
【发布时间】:2015-10-09 12:58:48
【问题描述】:

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

例如,我的 js 文件中有 angular js 代码,我需要填充从控制器操作 listAction (/users/list) 获得的对象列表,或者我需要推送更改为控制器操作的对象saveAction (/user/save)。

我不喜欢像

这样在 js 文件中硬编码路由
$http.get("http://localhost/sample/users/list").success(function(response){
//my code here
});

我想在 js 文件中使用 phalcon 的路由器,如下所示:

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

现在,我通过创建部分 .volt 文件并将与该视图相关的所有 javascript 放入其中,将 javascript 与控制器操作的视图分开。

有没有更好的方法?有没有办法可以访问 js 文件中的 phalcon 路由器?我在 Symfony 中使用 FOSJsRoutingBundle 是否有替代 phalcon 的方法?

【问题讨论】:

    标签: javascript php angularjs symfony phalcon


    【解决方案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>
    

    在您看来 (users/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 %}
    

    【讨论】:

    • 仍然无法在js文件中使用路由器。您上面的代码对于视图来说是一个很好的结构,但我希望能够在 javascript 文件中执行 $http.get 和 $http.post 并在其中使用路由器,因为我在 js 文件中有很多地方需要路由器。
    • 这就是使用 FOSJsRoutingBundle 的方式,您可以在 javascript 文件中直接为 $.get 提供路由:$.get(Routing.generate('my_route_to_expose', { id: 10, foo: "bar" }));
    猜你喜欢
    • 2017-08-18
    • 1970-01-01
    • 2015-01-13
    • 2018-06-07
    • 1970-01-01
    • 1970-01-01
    • 2013-07-29
    • 1970-01-01
    • 2016-11-02
    相关资源
    最近更新 更多