Tag: angularjs

AngularJS Restful Routing

我正在尝试使用Restful / Ruby convension //[method]/[id]构建我的应用程序。 以前在使用像CodeIgniter这样的服务器端MVC框架时,我是如何基于URI动态路由的: 恩。 www.foo.com/bar/baz/1 然后应用程序将在控制器/类bar使用方法baz并返回views/bar/baz.php (填充来自bar->baz数据) 我想在Angular中做同样的事,但我不确定它是否支持这个(如果确实如此,我不确定如何去做)。 目前我正在使用$routeProvider的when方法来指定每个案例。 $ location.path()看起来可能有我需要的东西,但我不认为我可以在app.js使用它(在config() )。 我想做的是这样的: .config([ ‘$routeProvider’, function($routeProvider) { $routeProvider .when(// controller exists resource+’/’+method, { “templateURL”: “views/” + resource + “/” + method + “.html”, “controller”: resource } ).otherwise({ “redirectTo”:”/error” }); } ]); 并且路由器自动调用适当的方法。 编辑另外,当我指定when(‘/foo/bar’, {…})时,为什么$ routeProvider会惊慌失措 ? 编辑2 Per Lee的建议,我正在考虑做这样的事情: $routeProvider .when( ‘/:resource/:method/:id’, […]

Javascript错误未知提供者:在Rails缩小Angularjs之后的tProvider < – t

在编译资产时打开资源放大后,我的Rails应用程序无效。 我转换Angular控制器使用括号表示法,并得到以下错误,有没有办法调试这个? 编译application.js https://gist.github.com/jianbo/6665161 JS错误 Error: Unknown provider: tProvider <- t at Error () at me:3001/assets/application-4f6cd4e170fc6ce5d181d869af318557.js:817:21665 at Object.i [as get] (me:3001/assets/application-4f6cd4e170fc6ce5d181d869af318557.js:817:20671) at me:3001/assets/application-4f6cd4e170fc6ce5d181d869af318557.js:817:21753 at i (localme:3001/assets/application-4f6cd4e170fc6ce5d181d869af318557.js:817:20671) at n (me:3001/assets/application-4f6cd4e170fc6ce5d181d869af318557.js:817:20805) at Object.r [as instantiate] (me:3001/assets/application-4f6cd4e170fc6ce5d181d869af318557.js:817:21447) at me:3001/assets/application-4f6cd4e170fc6ce5d181d869af318557.js:818:604 at me:3001/assets/application-4f6cd4e170fc6ce5d181d869af318557.js:817:28889 at r (me:3001/assets/application-4f6cd4e170fc6ce5d181d869af318557.js:817:8277) application-4f6cd4e170fc6ce5d181d869af318557.js:818 (anonymous function) application-4f6cd4e170fc6ce5d181d869af318557.js:818 (anonymous function) application-4f6cd4e170fc6ce5d181d869af318557.js:818 r.$broadcast application-4f6cd4e170fc6ce5d181d869af318557.js:818 (anonymous function) application-4f6cd4e170fc6ce5d181d869af318557.js:818 l application-4f6cd4e170fc6ce5d181d869af318557.js:818 […]

请求的资源上不存在“Access-Control-Allow-Origin”标头

我在AngularJS上使用omniauth-facebook并且CORS无法正常工作。 我的omniauth.rb是 Rails.application.config.middleware.use OmniAuth::Builder do provider :facebook,”xxxxx”, “xxxxx”, :scope => ’email,user_birthday,read_stream’, :display => ‘popup’ end 如果我将它用作rails应用程序和请求,一切正常。 但是当我尝试通过Angular JS调用’http:\ localhost:3000 \ users \ auth \ facebook“时 $http.get(‘/users/auth/facebook’).success(function(data, status, headers, config) { console.log(“back in success”); }). error(function(data, status, headers, config) { }); } 我在JS控制台中看到以下错误 XMLHttpRequest无法加载https://www.facebook.com/dialog/oauth?client_id=xxxx&display=popup … thday%2Cread_stream&state = 3352c1924bdbc9277f7b1070c38d67acf79b529f198323cb。 请求的资源上不存在“Access-Control-Allow-Origin”标头。 因此不允许’http://localhost:3000’访问。 (该控制台中的url未完全显示) 我添加了以下行 config.middleware.insert_before Warden::Manager, Rack::Cors 但这也行不通。 […]

如何在AngularJS的Rails 4中修正设置根路由?

我在使用AngularJS集成Rails路由时遇到了麻烦。 当我在浏览器输入中转到“localhost:3000”时,它会将我重定向到“localhost:3000 /#/ auth / sign_in” 但’sign_in’模板无法渲染。 然后,如果我转到“localhost:3000 /#/”,它会将我重定向到“localhost:3000 /#/ auth / sign_in”并向右渲染“sign_in”模板。 如何修复它,当我去“localhost:3000”然后渲染’sign_in’? 路由器代码在这里: http : //pastie.org/8917505 谢谢!

确保用户使用cookieStore和AngularJS登录或注销的最佳实践

现在我正在Ruby on Rails上构建一个基于AngularJS的应用程序,并使用Devise进行身份validation。 当用户成功进行身份validation以及身份validation失败时,我让服务器正确响应。 我想我的问题是,使用$ cookieStore,了解用户是否登录的最佳做法是什么? 有一个由Rails设置的cookie称为“myapp_session”,但该会话并不一定意味着用户已登录。寻找有关如何使用AngularJS来保持用户在线/离线管理的想法。 无论解决方案如何,我仍然会确保需要授权的请求得到后端的授权。

Angular Rails模板无法正常工作

我正在关注使用angular + rails的思想家的教程( https://thinkster.io/angular-rails/ )。 一切都很好,直到我尝试使用angular-rails-templates将模板放入javascript文件夹。 我是rails的新手,所以我不知道这个gem是如何工作的。 但我确实多次按照教程,仍然没有工作。 总而言之,似乎注入angular app的’templates’模块没有将这些模板编译成templateCache,或者application.js文件忽略了所有扩展名为.html的文件。 这是我在github上的代码: https : //github.com/collapsarzhang/demo-projects/tree/master/flapper-news

Rails api用回形针

我有简单的回形针模型的rails api: def create @photo = Photo.new(photo_params) if @photo.save render json: @photo, status: :created, location: @photo else render json: @photo.errors, status: :unprocessable_entity end end private def photo_params params.require(:photo).permit(:image, :title) end 我的前端框架发送得像这样 {“title”=>”simpletitletext”, “photo”=>{“image”=>……}} 但它错了,因为rails等待跟随 {“photo”=>{“title”=>”simpletitle”, “image”=>#…}} 在写完之前,我一直在尝试以不同的方式修复角度数小时。 也许它能够修复铁轨

使用Zipfilegenerator类,Ruby生成zip时的资源锁定

我在railsJS和ruby轨道上有一个应用程序。 我通过代码生成子文件夹和html文件。 就像我的文件夹结构一样 -根 —– Sub1的 ———- Sub_Sub1 ———- Sub_Sub2 ———-的index.html —–分公司2 —– abc.html 我通过Zipfilegenerator生成了目录的zip文件。 我已经创建了这个function,以便在生成目录之前系统检查是否存在任何具有相同名称的先前目录,然后它将删除该目录,然后生成新目录。 这是我删除文件夹和文件的代码。 #delete all files Dir.glob(“path/to/dir/.”) do |rb_file| File.delete(rb_file) end FileUtils.rm_rf(“path/to/dir/”) #delete all sub directory FileUtils.mkdir(“path/to/dir/”) #create root directory 这是创建zip的代码 zf = ZipFileGenerator.new(directory_to_zip, output_file) zf.write() 现在我有一个奇怪的问题,第一次一切正常工作生成zip文件生成但第二次系统无法删除第一次尝试中创建的根和子文件夹中的文件。 我已经调查了这个问题,发现当我评论zip创建代码时,文件被成功删除了。 所以我在从目录生成zip时面临资源锁定问题。 能帮我解决一下这个问题吗?

Restangular:错误:未知提供者:RestangularProvider < – Restangular

我正在尝试使用restangular作为rails rest api的适配器,但我无法使其正常工作。 我已经下载了最新版本并将文件放在vendor / assets / javascripts文件夹中。 但是一旦我尝试加载应用程序,我会收到以下错误: Error: Unknown provider: RestangularProvider <- Restangular at Error () at http://0.0.0.0:3000/assets/angular.js?body=1:2706:19 at Object.getService [as get] (http://0.0.0.0:3000/assets/angular.js?body=1:2832:39) at http://0.0.0.0:3000/assets/angular.js?body=1:2711:45 at getService (http://0.0.0.0:3000/assets/angular.js?body=1:2832:39) at invoke (http://0.0.0.0:3000/assets/angular.js?body=1:2850:13) at Object.instantiate (http://0.0.0.0:3000/assets/angular.js?body=1:2882:23) at http://0.0.0.0:3000/assets/angular.js?body=1:4771:24 at http://0.0.0.0:3000/assets/angular.js?body=1:4350:17 at forEach (http://0.0.0.0:3000/assets/angular.js?body=1:161:20) 这是我的application.js文件 //= require jquery //= require bootstrap //= require suggest.min //= require […]

这对于s​​inatra + angular.js +自定义提供程序的Oauth2工作流的概念是否正确?

我想构建三个示例应用程序。 一个是sinatra oauth2提供者,第二个是rails应用程序,前端是angular.js,后端是rails,第三个是后端的sinatra和前端的angular.js。 我们的Rails / Sinatra应用程序将使用satelizer和我们的自定义提供程序对用户进行身份validation。 这些是我们现在的Oauth2工作流程。 使用Satellizer,我们从提供商处获取授权码。 我们将此代码发送到我们的后端。 在使用此授权码,密钥和其他参数的后端,我们向提供商发送请求以获取访问令牌。 使用此获取访问令牌,我们调用’/me’操作以从提供者获取uid,电子邮件和其他用户属性。 在同一个操作中,我们解析响应主体,并根据uid查找或创建用户。 我们想知道这个步骤应该以某种方式设置用户的身份validation令牌。 将提供者访问令牌存储在用户数据库记录中。 生成新的身份validation令牌并在每个请求上更改它 使用用户uid和令牌生成JWToken并将其发送回卫星器。 然后在每个请求上, Satellizer在标头中包括Bearer JWToken 。 在recive请求我们的后端validation存储在数据库中的标头令牌并在我们的案例devise(sign_in, store: false)调用sing_in方法devise(sign_in, store: false)可能在sinatra app中我们将使用warden。 您如何看待这个概念? 也许我们错过了什么。 这是我们的第一个oauth2身份validation实现,我们对此感到担忧。