【问题标题】:Mixing AngularJS with Phalcon Framework将 AngularJS 与 Phalcon 框架混合
【发布时间】:2014-07-19 16:13:07
【问题描述】:

我正在 Phalcon 中构建一个多模块 webapp,基本结构如下:

my-project/
├── apps
│   ├── admin
│   │   ├── controllers
│   │   │   └── IndexController.php
│   │   ├── Module.php
│   │   └── views
│   │       └── index
│   │           └── index.phtml
│   └── frontend
│       ├── controllers
│       │   └── IndexController.php
│       ├── Module.php
│       └── views
│           └── index
│               └── index.phtml
├── common
│   └── config
│       └── config.ini
└── public
    └── index.php

您可能会注意到管理区域有一个模块,前端有另一个模块。现在我想用 AngularJS 构建管理区域,传统的 AngularJS 应用程序结构由多个文件、文件夹和子文件夹组成。所以我有两个问题:

  1. 放置 AngularJS 项目文件夹最有用和最明智的位置在哪里?
  2. 如何从管理区域的IndexController.php 重定向到AngularJS 应用程序的实际index.html

提前致谢!

【问题讨论】:

    标签: javascript php angularjs phalcon


    【解决方案1】:

    这确实与个人意见接壤,但我是这样看的:

    1. 您的 angularjs javascript 代码需要位于公用文件夹(或符号链接)中,这样才能得到服务,这是没有办法的。
    2. 要重定向,您可以使用$this->response->redirect("http://example.com/my/ng/app", true); 任何您决定放置的位置

    但是我会说重定向是不必要的。为什么不把你的 angularjs 模板放在视图的 index.phtml 中呢?您所有的 Angular 模板都可以只是 phalcon 视图。

    就个人而言,我开始做一个混合管理系统部分 phalcon,部分 angularjs ......随着我的继续,那里的 phalcon 越来越少; angularjs 只是让很多看起来没有必要。现在我的大部分页面都开始从控制器获取初始数据以保存 ajax 请求,甚至可以一次性提供所有模板

    <script type="text/javascript">
        var myInitialData = <?=json_encode( $dataFromController )?>;
    </script>
    
    <script type="text/ng-template" id="myTemplate">
        html for template ajax uses goes here
    </script>
    
    <div ng-controller="myController">
        <!-- controller can access data with $window.myInitialData -->
        html here
    </div>
    

    然后通过json与phalcon控制器通信

    【讨论】:

      【解决方案2】:

      phalcon.angular.bootstrap - Angular、Phalcon 和 Bootstrap 的非单页实现的样板 phalanx - 带有 Phalcon PHP 框架和 Angular 的入门应用程序

      来自https://packagist.org/packages/phalcon/awesome-phalcon

      【讨论】:

        猜你喜欢
        • 2013-03-15
        • 2011-05-24
        • 2023-04-05
        • 1970-01-01
        • 2016-09-09
        • 2015-04-29
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多