这次我们要添加一个版本更新功能在页面上输入版本号和连接点击按钮将版本信息提交到数据库中
要求每次提交都会覆盖之前的提交
<!--StartFragment--> <!--EndFragment-->
首先建立一个简单的页面 version_uodate.html.slim
.modal-header.pts.pbs .modal-title strong.mrh | 版本更新 - (用于 iOS 端自动升级) .modal-body input.form-control[ ng-model="versions" placeholder="请输入版本" required ] p input.form-control[ ng-model="link" placeholder="请输入连接" required ] .modal-footer a.btn.btn-primary.btn-wide.pull-left ng-click='updateVersion()' ng-disabled='!versions || !link' | 确定
ng-disabled='!versions || !link'这一句是实现了上面text没有输入的话确定按钮将不可以点击!
<!--StartFragment-->
好了 页面 我们是 使用的 slim 下面
在settings.js.coffee.erb 中写入这些内容
app = window.app app.config ($stateProvider, $urlRouterProvider) -> $stateProvider.state("versionUpdate", url: '/version_update' controller: "SettingsCtrl" templateUrl: "<%= asset_path("settings/version_update.html.slim") %>" ) return
这里给versionUpdate 写一个路径
<!--StartFragment-->
后端使用的ruby 这里写下api
更新的动作在api/v1这里settings.rb 输入如下内容
class API::V1::Settings < Grape::API include API::V1::Helpers doorkeeper_for :all before do # authenticate! end helpers do # def permitted_params # ActionController::Parameters.new(params[:settlement]).permit( # :amount, :customer_id, :user_id, :order_id, order_ids: [], pay_records: [] # ).tap do |hash| # hash[:pay_records] = params[:settlement][:pay_records] # end # end end resource :settings do desc "Update a version." put '/update' do # 删除全部 # 创建记录 Setting.create!( version_number:params[:setting][:version_name], link:params[:setting][:link] ) end end end
忽略我注释的部分 忘记删掉了 这不是个好习惯
<!--StartFragment-->
文件位于controller下的settings.coffee 文件中
首先先判断上面页面的值是否传入过来
<!--EndFragment-->
app = window.app app.controller 'SettingsCtrl', ( $scope, $upload, dialogs, $state ) -> $scope.link $scope.versions #1.test invork #2.parameter #3.methed $scope.versionUpdate= -> alert($scope.link) alert($scope.versions)
在这里我们选择打印参数 link,versions
<!--StartFragment-->刷新页面在输入框输入字符点击提交会显示弹窗内容和我们打印的一模一样
ok 第一步宣告成功(⊙o⊙)…
接下来我们要让传递过来的参数存入js 中以备后续存入数据库中
在这里数据库表我事先已经建好了 versions 字段 version_number = string , link = strin
<!--StartFragment--> <!--EndFragment-->
接下来在controllers目录下setting.coffee 里改为这些内容
//= require_tree ./settings app = window.app app.controller 'SettingsCtrl', ($scope,$upload,dialogs,$state,Version,$window) -> $scope.link $scope.versions $scope.updateVersion = -> Version.$put( "/api/v1/versions/update", {version_name: $scope.versions, link: $scope.link,} ).then ((result) -> $scope.alertWith("保存成功") $window.location.reload() ), (error) -> console.log(error)
然后在version.rb中写入这些内容
class API::V1::Versions < Grape::API include API::V1::Helpers doorkeeper_for :all before do # authenticate! end helpers do # def permitted_params # ActionController::Parameters.new(params[:settlement]).permit( # :amount, :customer_id, :user_id, :order_id, order_ids: [], pay_records: [] # ).tap do |hash| # hash[:pay_records] = params[:settlement][:pay_records] # end # end end resource :versions do # #功能 # => 更新数据库 # #逻辑 # # => 1.先删除库总所有文件 # 2.添加新的版本 # desc "Update version" put '/update' do # 删除全部 Version.delete_all() # 创建版本 Version.create!( version_number:params[:version][:version_name], link:params[:version][:link] ) end # #功能 # => 获取版本号 # #逻辑 # => 查询 verions 表第一条数据 # #注意 # => /get 和 返回结果集名字要一致 # desc "get version" get '/get' do @get = Version.last return @get end end end
啊哦 大功告成 ··
<!--StartFragment--><!--EndFragment-->
<!--EndFragment-->
<!--EndFragment-->
<!--EndFragment-->
相关推荐
在前端开发领域,AngularJS(通常简称为Angular.js)是一个非常流行且强大的JavaScript框架,由Google维护。这个框架主要用于构建动态、单页Web应用程序(SPA),它提供了丰富的功能来简化前端开发过程,包括数据...
本教程的目标是教会初学者如何使用 Angular JS 构建一个简单的 TodoList 应用程序,该应用具备以下功能: - 在界面上输入待办事项 - 新增待办事项到列表中 - 动态显示所有待办事项 #### 步骤详解 ##### 1. 布局...
Angular是一个流行的前端框架,用于构建可维护和可扩展的单页应用程序(SPA),而D3.js(Data-Driven Documents)则是一个JavaScript库,专为创建动态、交互式的SVG、Canvas或HTML图表设计。当这两个工具结合在一起...
1. **安装**:首先,你需要将angular-imgcache.js库添加到你的项目中,可以通过Git克隆仓库或者下载zip文件。在这个例子中,文件名是`angular-imgcache.js-master`。 2. **引入库**:在你的HTML文件中引入ImgCache....
在本文中,我们将深入探讨如何使用Angular.js框架创建一个功能丰富的日期选择器。Angular.js,由Google维护,是一个强大的前端JavaScript框架,它提供了一种声明式编程方式来构建交互式的Web应用。在这个“基于...
Angular.js 是一个强大的前端JavaScript框架,它提供了丰富的功能和灵活性,用于构建动态、数据驱动的Web应用程序。而WUI-DatePicker是一款基于Angular.js开发的日期选择器插件,专为提高用户体验而设计,提供了多种...
AngularJS,作为一款由Google维护的前端JavaScript框架,是MVVM(Model-View-ViewModel)模式的杰出代表,以其强大的数据绑定、依赖注入和模块化功能深受开发者喜爱。在1.6.9这个版本中,我们看到对稳定性和性能的一...
Angular Truncate是一款专门为AngularJS设计的JavaScript插件,它的主要功能是帮助开发者在视图中对字符串进行灵活的截断处理。在Web开发中,有时我们需要在有限的空间内展示大量文本,例如在列表项或者卡片内容中。...
此功能主要用于将从后端获得的数据动态添加到页面中。它主要模仿Angular JS中的数据绑定,通过{{name}_changeHtml将后端数据替换为模板中的相应位置
- 添加功能:类似修改功能,但需使用POST请求将新股票数据提交至后端。 综上所述,Angular 股票管理项目涵盖了前端Angular框架的组件、模板、服务和数据绑定等基础知识,以及后端Express.js的路由、中间件和静态...
AngularJS,作为一款由Google维护的开源JavaScript框架,自其诞生以来就以其强大的MVC(Model-View-Controller)架构和双向数据绑定功能,引领了前端开发的新潮流。本文将深入探讨AngularJS 1.3版本中的关键知识点,...
在本文中,我们将深入探讨两种重要的JavaScript库:Angular和zTree,以及它们如何协同工作以构建功能丰富的Web应用程序。Angular是一款强大的前端框架,由Google维护,用于构建动态、交互式的单页应用程序(SPA)。...
在Angular 1.x中,随着应用的复杂度增加,页面上的JavaScript文件数量也会相应增多,导致页面加载时间延长,用户体验受到影响。"Angular 1.x按需加载js"是一种优化策略,旨在解决这个问题,通过动态加载只有在用户...
这个压缩包中的"angular.js-1.3.0-beta.16"文件包含了所有必要的JavaScript库,可以直接在项目中引用,以便利用AngularJS 1.3.0-beta.16的所有特性。不过,使用beta版本时需要注意可能存在不稳定因素,建议在生产...
Angular-Chart.js项目结合了这两个强大的工具,允许AngularJS开发者利用Chart.js的功能,无需离开AngularJS的生态系统。它通过定义自定义指令,使得在AngularJS应用中创建和更新图表变得非常直观。例如,你可以通过...
总的来说,Angular UI Grid 是一个功能丰富的数据网格组件,能帮助开发者快速构建复杂的数据交互界面。它的灵活性和扩展性使其成为许多企业级 AngularJS 应用的首选解决方案。通过深入理解和实践,开发者可以充分...
angular-snapscroll, 在 Angular 中,垂直滚动和捕捉功能 角 snapscroll angular-snapscroll向 Angular 添加垂直scroll-and-snap功能。js仅实现只需要 Angular 内核6.2kB 缩小时,压缩时 2.3 kB
它允许开发者使用TypeScript语言编写代码,TypeScript是JavaScript的一个超集,并添加了类型系统,有助于在开发大型应用程序时减少错误。Angular2的组件化方式使得应用程序的开发变得更加模块化,提高了代码的复用性...
这个组件可能扩展了Angular的`<button>`元素,并添加了权限相关的属性和指令。例如,它可能有一个`permission`属性,用于接收权限标识,然后通过调用`BtnAuthService`的服务方法来决定按钮是否显示或禁用。这样的...
本文将深入探讨如何在Angular应用中实现这一功能,并基于提供的"dragSort-Angular-master"项目进行详细讲解。 首先,Angular本身并不直接提供拖拽排序的功能,但可以通过第三方库如`ng2-dragula`或`angular-sorts`...