2015年8月

Rails+AngularJS 实现Ajax前后端完全分离

因为网上的教程字数太多,而且都是英文的(没错这才是重点)。想要前后端完全分离的我完全懒得考虑这么多,就自己开始折腾能不能很轻松的完全只是用Control和Model而不管View,不引入gem,现在简单的小demo终于成功了。

Rails的初始准备见:Rails 处理跨站请求

准备完这个,接下来我们就只要管Control怎么写就行了。

首先来尝试一下get,最简单。

    def index
        json_str = {"xx" => "hello"}.to_json
        render :json=>json_str, status=>'200'
    end

- 阅读剩余部分 -

Rails 处理跨站请求

AnguarlJS中的方法虽然可以直接进行jsonp跨域请求,不用像jQuery那样包装jsonp,不过依旧需要后端开启跨域,否则仍旧没办法数据交互:

已阻止跨源请求:同源策略禁止读取位于 http://localhost:3000/create 的远程资源。(原因:CORS 头缺少 'Access-Control-Allow-Origin')。

- 阅读剩余部分 -

AngularJS Directive中link的四个参数究竟是什么

AngularJS中的Directive简直是个深渊,今天又小小的跟它杠上了。

以这一段为例:

app.directive('posts', function() {
    return {
        scope: {
            adding: '&'
        },
        //require: 'ngModel',
        controller: 'AppController',
        link: function(scope, elm, attrs, ctrl) {
            console.log(scope);
            console.log(elm);
            console.log(attrs);
            console.log(ctrl);
        },
        template: '<input type="text" name="author" placeholder="author" ng-model="author" required><input type="text" name="content" placeholder="content" ng-model="content"><input value="post" type="submit" ng-click="adding({msg:{author:author, content: content}})">',
    };
});

通过console.log我们可以观察一下到底各个是什么东西。

scope:输出一个作用域,这个作用域是由Controller决定的,如果没有定义,是空值。

elm:输出一个元素数组,数组中的每个元素是调用directive的DOM树

attrs:输出一个Object, Object内是该DOM元素的各种属性方法

ctrl:输出一个Object,是对应的controller

AngularJS 动态参数传值问题

今天完整的练了个手,结果踩到不少坑,其中一个是传参数的问题,我希望用绑定好的msg去传参,结果就遇到问题了。

当时写的是app.addMessage({{msg}})结果一直报错,坑爹。查了一下才知道,如果使用{{ }}相当于转换为一个常量,而这里需要传入的是变量,所以直接这么写就行了:

app.addMessage(msg)

参考:https://cnodejs.org/topic/5305cb2e6c0325e50137797d

OSX 删除pkg安装的Node.js

想用brew统一包管理,结果brew install node的时候突然想到本身好像已经有安装过了,当时好像没成功迁到包管理去,于是想着重新装一下吧,反正也是老版本了,结果突然遇到了怎么删除的问题。

查了一下,用这段shell脚本就行了,保存为xxx.sh

lsbom -f -l -s -pf /var/db/receipts/org.nodejs.pkg.bom \
| while read i; do
  sudo rm /usr/local/${i}
done
sudo rm -rf /usr/local/lib/node \
     /usr/local/lib/node_modules \
     /var/db/receipts/org.nodejs.*

OSX proxychains4在Terminal里使用socks5

在Terminal里因为走的是http所以socks5并没有什么卵用让我感到十分痛苦。

然而只有SS没有VPN,而且不喜欢开全局代理,就想着怎么样可以让各种下载走代理线路。

然后查到了proxychains4,感觉上去大概会比Proxifier好用些,一直开软件我也觉得麻烦。

当然有一些差别,proxychains4是对Terminal中的TCP/UDP进行代理,所以如果需要ping之类的还是需要开全局代理的。

- 阅读剩余部分 -

Rails 关于Rails那些奇奇怪怪的新手笔记

这两天属于北京填鸭式的给自己灌输了一堆Rails的知识,其实心挺累的,最后几乎看不进去了……

首先先说明,当Rails创建ControllerModel之类的同时,他会创建一堆方法!!!
首先先说明,当Rails创建ControllerModel之类的同时,他会创建一堆方法!!!
首先先说明,当Rails创建ControllerModel之类的同时,他会创建一堆方法!!!

因为很重要所以要说三遍。

这里也就是草稿的集合,具体请查询相关教程手册。

- 阅读剩余部分 -

Rails 实现用户登录存取Session思路总结

《Ruby On Rails Tutorial 中文版》中的第八章,把思路总结了一下,大概是Session构建的9个过程:

第一步:新建controller

执行:rails generate controller Sessions,同时会创建一个Helper,之后我们会反复使用

第二步:定义路由

在routes.rb中追加:resources :sessions, only: [:new, :create, :destroy]

追加完毕之后,我们还需要写一下match:

match '/signin',  to: 'sessions#new', via: 'get'
match '/signout', to: 'sessions#destroy', via: 'delete'

- 阅读剩余部分 -