我正在开发一个用 CodeIgniter 编写的现有网站,我们正在考虑将 AngularJS 用于一些需要大量前端功能的页面,但我们不想(一次(还))替换所有 CodeIgniter View 。
所以我点击了一个由 angular 的路由器控制的链接,它由 javascript 处理,但下一个链接可能是应该由 CodeIgniter 框架处理的“正常”请求。
是否有一些优雅的方式将这两种方法结合起来?我真的不介意一些额外的客户端开销,因为该站点尚未在生产环境中运行。
最佳答案
听起来您希望随着 Angular 应用程序的增长逐渐减少对 CodeIgniter (CI) 路由的使用。这并不困难,但需要很多细节。哪种方法可行取决于您的项目结构。 注意:我从 Code Igniter URL 中删除了 index.php,因此下面的路径可能与默认路径不同。
如果 CI 安装在服务器的根目录下,您可以在 CI 中创建一个文件夹(例如我有一个“ng”文件夹)。您的项目将如下所示:
/controllers
/models
/ng
(etc)
/index.php (code igniter index file)
在 /ng 中放置一个 .htaccess 文件,内容如下:
Order allow, deny
Allow from all
这允许直接访问 /ng 中的文件,而不是通过 CI 的路由系统将这些请求发回。例如,您现在可以直接加载它:
example.com/ng/partials/angular-view.html
主网页仍将由 CodeIgniter 创建,但它现在可以包含 Angular Assets ,例如局部 View 等。最终,您可以通过返回一个简单的页面并加载 Angular 来替换 CodeIgniter 所做的大部分工作来自 /ng 的部分 View 就像它的设计一样。
这个方法很好,因为 CodeIgniter 可以控制是否加载初始页面(通过 CI Controller 中的一些用户身份验证代码)。如果用户未登录,他们将被重定向并且永远看不到 Angular 应用程序。
如果 CI 安装在一个目录中,比如 example.com/myapp/(code igniter) 你可以简单地在它旁边创建一个目录,example.com/myappNg/
/myapp/
/myapp/controllers/
/myapp/models/
/myapp/(etc)
/myapp/index.php (code igniter index file)
/myappNg/
/myappNg/partials/
/myappNg/js/
/myappNg/(etc)
现在,在您的 Angular 应用程序中,您可以通过创建相对于域根而不是相对于 Angular 应用程序的路径来从 CI 请求资源。例如,在 Angular 中,您将不再从 Angular 文件夹 partials/angular-view.html 请求局部 View ,而是从 CI /myapp/someResource 请求 View 。请注意前导 /。 “someResource”可以返回一个 html 文档,或 JSON 或您首先使用 Code Igniter 所做的任何事情。
最终您可以替换引用 /myapp/ 的路径数。一旦您不再将 CI 用于任何事情,您只需将 Angular index.html 放在 /myapp/ 中,它将继续在 /myappNg/ 中引用您的路径。
TL;DR 使您的 Angular 应用完全可用,并将其与 CodeIgniter 分离。逐渐转向使用 Angular 部分 View 和其他 JSON 源,而不是链接到 CodeIgniter 页面。最终用引导 Angular 的 HTML 文件替换您的 CodeIgniter 端点。
关于php - 结合 Angularjs 和 CodeIgniter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14682830/
我在开发的Rails3网站的一些搜索功能上遇到了一个小问题。我有一个简单的Post模型,如下所示:classPost我正在使用acts_as_taggable_on来更轻松地向我的帖子添加标签。当我有一个标记为“rails”的帖子并执行以下操作时,一切正常:@posts=Post.tagged_with("rails")问题是,我还想搜索帖子的标题。当我有一篇标题为“Helloworld”并标记为“rails”的帖子时,我希望能够通过搜索“hello”或“rails”来找到这篇帖子。因此,我希望标题列的LIKE语句与acts_as_taggable_on提供的tagged_with方法
很难说出这里要问什么。这个问题模棱两可、含糊不清、不完整、过于宽泛或夸夸其谈,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开,visitthehelpcenter.关闭9年前。我需要从基于ruby的应用程序使用AmazonSimpleNotificationService,但不知道从哪里开始。您对从哪里开始有什么建议吗?
尝试从我的AngularJS端将数据发布到Rails服务器时出现问题。服务器错误:ActionController::RoutingError(Noroutematches[OPTIONS]"/users"):actionpack(4.1.9)lib/action_dispatch/middleware/debug_exceptions.rb:21:in`call'actionpack(4.1.9)lib/action_dispatch/middleware/show_exceptions.rb:30:in`call'railties(4.1.9)lib/rails/rack/logg
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭9年前。我来自C、php和bash背景,很容易学习,因为它们都有相同的C结构,我可以将其与我已经知道的联系起来。然后2年前我学了Python并且学得很好,Python对我来说比Ruby更容易学。然后从去年开始,我一直在尝试学习Ruby,然后是Rails,我承认,直到现在我还是学不会,讽刺的是那些打着简单易学的烙印,但是对于我这样一个老练的程序员来说,我只是无法将它
我有一个基本的Rails应用程序测试,其中包含一个用回形针处理的照片字段的用户模型。我创建了能够创建/编辑用户的View,并且照片上传工作正常。Editinguseruser_path(@user),:html=>{:method=>"put",:multipart=>true}do|f|%>|然后,我想将SWFUpload集成到我的应用程序中。我试着按照这个tutorial并运行testproject没有任何成功:浏览按钮不会打开文件对话框,并抛出错误#2176,这是关于selectFiles()方法的。首先,问题是Flashv.10与项目中包含的旧版本SWFUpload(2.1.0
我正在尝试使Authlogic和FacebookConnect(使用Facebook)发挥良好的作用,以便您可以通过正常注册方式或使用Facebookconnect创建帐户。我已经能够让连接以一种方式工作,但注销只会在facebook而不是我的网站上注销,我必须删除cookie才能使其正常工作。任何帮助都会很棒,谢谢! 最佳答案 这是我使用FacebookConnect扩展、authlogic和OpenID制作的示例应用程序。它仍然需要一些工作,但它确实起作用了。http://big-glow-mama.heroku.com/htt
亚马逊的documentation提供有关如何使用DynamoDBLocal的Java、.NET和PHP示例。你如何用AWSRubySDK做同样的事情??我的猜测是你在初始化时传入了一些参数,但我不知道它们是什么。dynamo_db=AWS::DynamoDB.new(:access_key_id=>'...',:secret_access_key=>'...') 最佳答案 您使用的是SDK的v1还是v2?您需要找出答案;从上面的简短片段来看,它看起来像v2。为了以防万一,我已经包含了这两个答案。v1答案:AWS.config(us
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭10年前。我使用PHP的时间太长了,对它感到厌倦了。我也想学习一门新语言。我一直在使用Ruby并且喜欢它。我必须在Rails和Sinatra之间做出选择,那么您会推荐哪一个?Sinatra真的不能用来构建复杂的应用程序,它只能用于简单的应用程序吗?
我很确定Ruby有这些(等同于__call、__get和__set),否则find_by将如何在Rails中工作?也许有人可以举一个简单的例子来说明如何定义与find_by相同的方法?谢谢 最佳答案 简而言之你可以映射__调用带有参数的method_missing调用__设置为方法名称以'='结尾的method_missing调用__获取不带任何参数的method_missing调用__调用PHPclassMethodTest{publicfunction__call($name,$arguments){echo"Callingob
Lisp是否适合Web编程/应用程序(交互式),就像ruby和php一样?需要考虑的事情是:易于使用可部署性难度(尤其是对于编程初学者而言)(编辑)在阅读PaulGraham'sessay之后,我特别提到了CommonLisp.将是我的第一门编程语言。在这方面。这样做合适吗?我听说Clojure的宏功能不如CommonLisp的强大,这就是我尝试学习Clojure的原因。它教授编程并且非常强大。 最佳答案 Lisp是一个语系,而不是单一的语言。为了稍微回答您的问题,是的,存在用于各种Lisp方言的Web框架,例如用于Common