`
任清宇
  • 浏览: 21785 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

angular js

 
阅读更多

 

 

最近开始接触angular sj  ui router  由于不太懂 也是踩了不少坑

在这里记录 已被后期 review 

 

首先是mac 配置 rails 时报错 

 

/Users/xiaoyu/.rvm/gems/ruby-2.2.0@baozheng/gems/json-1.8.2/lib/json/ext/parser.bundle: [BUG] Segmentation fault at 0x00000000000440

ruby 2.2.0p0 (2014-12-25 revision 49005) [x86_64-darwin14]

 

-- Crash Report log information --------------------------------------------

   See Crash Report log file under the one of following:

     * ~/Library/Logs/CrashReporter

     * /Library/Logs/CrashReporter

     * ~/Library/Logs/DiagnosticReports

<!--StartFragment--> <!--EndFragment-->

     * /Library/Logs/DiagnosticReports

 

这主要是因为  在设置电脑的时候自己没有给自己root权限导致

如果知道的情况下会很抓狂 

运行 sudo rails s

这时候会报错 请求安装miss  gems 

运行sudo bundle install

<!--StartFragment--> <!--EndFragment-->

再次运行 sudo rails s

好  环境都安装完毕以后 

我们 clone 代码  安装必须的 gem  进行数据库 文件导入 

数据库迁移  

启动服务器就看到熟悉的 界面了 

下面是正题  

 

这次我们要添加一个版本更新功能 在页面上输入版本号和连接 点击按钮 将版本信息提交到数据库中

要求 每次提交都会覆盖之前的提交

 

 

首先建立一个简单的页面 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没有输入的话确定按钮将不可以点击!

 上面的格式需要注意 必须对其 看得出来我们的页面代码量很少 许多功能都是约定的

在 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

这里是 angular js ui router 

 

给versionUpdate 写一个路径

 

 

更新的动作在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

 在这我们添加了一个api 

 

文件位于controller下的settings.coffee 文件中

<!--StartFragment--> <!--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) 

 刷新 页面 输入信息点击提交  

打印出了我们想要的 信息 ok 

说明跑通了

<!--StartFragment-->

接下来我们要让传递过来的参数存入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

 大功告成 --!

<!--EndFragment-->
分享到:
评论

相关推荐

    angular js代码食谱(recipes with angular js)

    《Angular JS代码食谱》是一本专为开发者准备的实战指南,它深入浅出地介绍了Angular JS这个强大的前端框架的基本特性和用法。这本书通过一系列精心设计的代码示例,帮助读者快速理解和掌握Angular JS的核心概念,...

    Angular js教程三

    Angular JS是Google维护的一个开源项目,它基于JavaScript,同时也充分利用了ECMAScript的特性,为开发者提供了丰富的功能和便利。 1. **双向数据绑定**:Angular JS的核心特性之一就是双向数据绑定,它将视图与...

    angular.js

    **Angular.js** 是一款强大的JavaScript框架,主要用于构建强交互性的Web应用。它的核心设计理念是引入MVC(Model-View-Controller)模式到前端开发中,从而帮助开发者更高效地组织和管理代码,尤其是在处理复杂的...

    Angular.js v1.8.3.zip

    Angular.js 是一个强大的JavaScript框架,由Google维护,用于构建单页应用(Single Page Applications, SPA)。这个版本,v1.8.3,是Angular.js的一个稳定版本,它提供了丰富的功能和改进,帮助开发者构建高性能、可...

    ssm+angular js+shiro 做的后台管理系统

    Angular JS是Google维护的一个JavaScript框架,主要用于构建单页应用程序(SPA)。它提供了数据双向绑定、指令系统、模块化等功能,使得前端页面的动态性和交互性大大增强。在这个后台管理系统中,Angular JS很可能是...

    angular-blocks, Angular JS的模板继承.zip

    angular-blocks, Angular JS的模板继承 角块 使用 Jade 和 Django 启发了 AngularJS的模块样式模板继承。安装需要 jquery 。下载 angular-blocks.min.js 插件,或者安装。$ bower install angu

    Angular js

    Angular js

    angular-fusioncharts, 面向FusionCharts的Angular JS绑定.zip

    angular-fusioncharts, 面向FusionCharts的Angular JS绑定 #AngularJS 图表插件简单有效的AngularJS图表插件。###Details 使用这个AngularJS图表插件,只使用一个指令向你的网络和移动应用程序添加交互式图表。 从...

    angular-smarty, 使用 Angular JS编写的自动完成用户界面.zip

    angular-smarty, 使用 Angular JS编写的自动完成用户界面 角 smarty使用 Angular JS编写的自动完成用户界面。安装bower install angular-smarty配置在 smarty-config.js 中处理配置injected主配置变量injected主配置...

    angular js demo 模仿的拼多多

    angular js demo 模仿的拼多多

    angular-ymaps, Yandex映射API作为 Angular JS direcitive.zip

    angular-ymaps, Yandex映射API作为 Angular JS direcitive 角 ymaps Yandex映射API作为 Angular JS direcitive 。使用 Это модуль для Angular JS,предназначенный для просто...

    angular-1.3.14.zip

    从官网angularjs org扒下来的 包含angular js angular min js angular min js map angular route js angular route min js之类等等 AngularJS是为了克服HTML在构建应用上的不足而设计的 它通过新的属性和表达式...

    angular-1.0.8.zip

    从官网angularjs org扒下来的 包含angular js angular min js angular min js map angular route js angular route min js之类等等 AngularJS是为了克服HTML在构建应用上的不足而设计的 它通过新的属性和表达式...

    angular-1.3.5.zip

    从官网angularjs org扒下来的 包含angular js angular min js angular min js map angular route js angular route min js之类等等 AngularJS是为了克服HTML在构建应用上的不足而设计的 它通过新的属性和表达式...

    angular js 1.3.16

    angular js 1.3.16 给下不了的人。

    framework7.angular, Framework7与 Angular Js的集成尝试 http.zip

    framework7.angular, Framework7与 Angular Js的集成尝试 http Framework7 + AngularJS 使用AngularJS强大的移动HTML框架构建 iOS & Android应用程序。 Anuglar 2集成( 正在开发中)https://github.com/ashvi

    angular.js 本地引用

    在前端开发领域,AngularJS(通常简称为Angular.js)是一个非常流行且强大的JavaScript框架,由Google维护。这个框架主要用于构建动态、单页Web应用程序(SPA),它提供了丰富的功能来简化前端开发过程,包括数据...

    sample-angular-node, 使用 angular.js 和 node.js的示例应用程序呈现 tweet.zip

    sample-angular-node, 使用 angular.js 和 node.js的示例应用程序呈现 tweet 使用 Angular & node 呈现 tweet使用 angular.js 。node.js 和 Twitter API的示例应用程序。安装和运行安装 node.js 。克隆 GitHub repo:...

Global site tag (gtag.js) - Google Analytics