<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>hxtheone (胡旭)</title>
    <link>https://ruby-china.org/hxtheone</link>
    <description></description>
    <language>en-us</language>
    <item>
      <title>造个小轮子 - 中国省市区级联选择插件 for Angular</title>
      <description>&lt;p&gt;&lt;a href="https://github.com/MrHuxu/cn-city-select" rel="nofollow" target="_blank" title=""&gt;https://github.com/MrHuxu/cn-city-select&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src="https://raw.githubusercontent.com/MrHuxu/img-repo/master/city-select/demo.gif" title="" alt="demo"&gt;&lt;/p&gt;

&lt;p&gt;上周日北京下雨，所以在家看了一天的 Angular，看完手很痒啊，然后翻自己 GitHub 的时候，看到&lt;a href="/saberma" class="user-mention" title="@saberma"&gt;&lt;i&gt;@&lt;/i&gt;saberma&lt;/a&gt;前辈为 Rails 写的省市区选择插件&lt;a href="https://github.com/saberma/china_city" rel="nofollow" target="_blank" title=""&gt;china_city&lt;/a&gt;，于是我也用 Angular 做了一个，功能也比较简单，在图上就能看的很明白了，算是一个小轮子吧。&lt;/p&gt;
&lt;h2 id="安装"&gt;安装&lt;/h2&gt;
&lt;p&gt;使用&lt;code&gt;bower&lt;/code&gt;安装：&lt;/p&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# enter your asset directory&lt;/span&gt;
bower &lt;span class="nb"&gt;install &lt;/span&gt;angular cn-city-select &lt;span class="nt"&gt;--save&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;h2 id="使用"&gt;使用&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;将&lt;code&gt;angular&lt;/code&gt;和&lt;code&gt;cn-city-select&lt;/code&gt;源文件包含进来&lt;/p&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="c"&gt;&amp;lt;!-- place this code into your page --&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;script &lt;/span&gt;&lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"text/javascript"&lt;/span&gt; &lt;span class="na"&gt;src=&lt;/span&gt;&lt;span class="s"&gt;"/xxx/angular.min.js"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&amp;lt;/script&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;script &lt;/span&gt;&lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"text/javascript"&lt;/span&gt; &lt;span class="na"&gt;src=&lt;/span&gt;&lt;span class="s"&gt;"/xxx/cn-city-select.min.js"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&amp;lt;/script&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;script &lt;/span&gt;&lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"text/javascript"&lt;/span&gt; &lt;span class="na"&gt;src=&lt;/span&gt;&lt;span class="s"&gt;"/xxx/yourJS.js"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&amp;lt;/script&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;创建 module:&lt;/p&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;ng-app=&lt;/span&gt;&lt;span class="s"&gt;"yourModule"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;city-select&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;将&lt;code&gt;cnCitySelect&lt;/code&gt;注入创建的 module:&lt;/p&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="c1"&gt;// place this code into yourJS.js&lt;/span&gt;
&lt;span class="nx"&gt;angular&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;module&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;yourModule&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;ngCitySelect&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;这个 directive 还预留了两个参数&lt;/p&gt;

&lt;p&gt;&lt;code&gt;select-result&lt;/code&gt;: 这个参数传递一个 ngModel 的名字，这个 model 会实时获取选择的结果
       &lt;code&gt;select-class&lt;/code&gt;: 这个参数传递字符串，这个字符串将会填充到三个 select 元素的 class 参数位置&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="感想"&gt;感想&lt;/h2&gt;
&lt;p&gt;这算是我第一次为开源社区做贡献吧，之前觉得自己代码写的不好，从来都不敢推广自己的代码，更没想过发布出去。其实现在代码写的也不是特别好，不过我觉得出来多交流才能有进步嘛，所以我也把我的 repo 放出来厚颜无耻求 star 了 :D&lt;/p&gt;

&lt;p&gt;欢迎各位大牛对代码中写的还不够好的地方进行指正~&lt;/p&gt;

&lt;p&gt;PS: 其实我自己已经发现一个蛋疼的地方了，就是把一坨 json 和 html 代码写进 Angular 里真是太丑陋了，但是 google 了半天也没有好的办法，难道是我搜索的姿势不对？&lt;/p&gt;</description>
      <author>hxtheone</author>
      <pubDate>Mon, 11 May 2015 23:24:29 +0800</pubDate>
      <link>https://ruby-china.org/topics/25527</link>
      <guid>https://ruby-china.org/topics/25527</guid>
    </item>
    <item>
      <title>给初学者的福利，分享 vim 使用的 dict 文件</title>
      <description>&lt;p&gt;第一次发分享的帖子，分享的东西也挺简单，紧张 ing...   &lt;/p&gt;

&lt;p&gt;文件地址：&lt;a href="https://github.com/MrHuxu/dotfiles/blob/master/bundle/vim-ruby/dict/ruby.dict" rel="nofollow" target="_blank" title=""&gt;https://github.com/MrHuxu/dotfiles/blob/master/bundle/vim-ruby/dict/ruby.dict&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;使用方式：将&lt;code&gt;.dict&lt;/code&gt;文件放入&lt;code&gt;~/.vimrc/bundle/vim-ruby/dict/&lt;/code&gt;下之后，在&lt;code&gt;.vimrc&lt;/code&gt;中添加如下语句即可&lt;code&gt;autocmd FileType ruby set dictionary=~/.vim/bundle/vim-ruby/dict/ruby.dict&lt;/code&gt;。&lt;/p&gt;

&lt;p&gt;文件说明：在代码补全的问题上，我属于被 IDE 惯坏的那一类人，开始用 vim 的时候，对于代码补全真是各种不爽啊，显示补全要使用快捷键，而且还无法根据语言显示方法，太弱了有木有。&lt;/p&gt;

&lt;p&gt;后来发现了&lt;code&gt;autocomplpop&lt;/code&gt;这个插件，终于代码补全能主动出现了，但是补全的内容还是停留在当前窗口的内容上，无法提示语言自己的方法。还是不能忍。&lt;/p&gt;

&lt;p&gt;再后来有一次写 Javascript 的时候，上 google 搜 vim 的补全，结果在 Github 上发现了别人写的 JS 的 dict 文件，打开一看，原来就是把所有需要的关键字写进一个文件就可以了，设定好文件类型之后，在 vim 的补全菜单里就能够出现，这很简单嘛，咱也来做一个 Ruby 的。&lt;/p&gt;

&lt;p&gt;说干就干，正好手边有一本《Programming Ruby》，后面的附录里有所有自带方法的介绍，我就照这个做了一个 dict 文件，终于 vim 的补全算是智能一点了。&lt;/p&gt;

&lt;p&gt;其实我觉得嘛，对于初学 Ruby 的人，有这样一个文件还是很有好处的，因为 Ruby 的各种对象的自带方法太丰富了，而且很多方法的功能在字面上就能体现出来，能够在补全列表里显示，也有助于初学者在编程时选择合适的方法。&lt;/p&gt;

&lt;p&gt;P.S.: 我在 Ubundu 下用是一个叫做&lt;code&gt;Rsense&lt;/code&gt;的东西来实现 Ruby 方法的补全，但是这个玩意儿配置有点蛋疼，而且时不时就不好使，我才想到要写这个 dict 文件。&lt;/p&gt;

&lt;p&gt;P.P.S.: 我手头的《Programming Ruby》第二版，对应 Ruby 版本是 1.8，有些旧方法可能不太适用新版本，也可能有些新方法没有包含进去，但是日常使用应该是没问题的。&lt;/p&gt;</description>
      <author>hxtheone</author>
      <pubDate>Fri, 07 Mar 2014 11:50:26 +0800</pubDate>
      <link>https://ruby-china.org/topics/17714</link>
      <guid>https://ruby-china.org/topics/17714</guid>
    </item>
    <item>
      <title>(已解决) 2.1.1 安装失败，求助~~</title>
      <description>&lt;pre class="highlight plaintext"&gt;&lt;code&gt;[2014-02-25 17:42:16] __rvm_make
__rvm_make () 
{ 
    \make "$@" || return $?
}
current path: /Users/huxu/.rvm/src/ruby-2.1.1
GEM_HOME=/Users/huxu/.rvm/gems/ruby-2.1.0
PATH=/usr/local/opt/pkg-config/bin:/usr/local/opt/libtool/bin:/usr/local/opt/automake/bin:/usr/local/opt/autoconf/bin:/Users/huxu/.rvm/gems/ruby-2.1.0/bin:/Users/huxu/.rvm/gems/ruby-2.1.0@global/bin:/Users/huxu/.rvm/rubies/ruby-2.1.0/bin:/Users/huxu/.rvm/bin:/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/local/sbin:/usr/local/var/rbenv/shims:/usr/bin:/usr/sbin:/bin:/sbin:/Library/Developer/CommandLineTools/usr/bin
GEM_PATH=/Users/huxu/.rvm/gems/ruby-2.1.0:/Users/huxu/.rvm/gems/ruby-2.1.0@global
command(3): __rvm_make -j 1
    CC = clang
    LD = ld
    LDSHARED = clang -dynamiclib
    CFLAGS = -O3 -fno-fast-math -ggdb3 -Wall -Wextra -Wno-unused-parameter -Wno-parentheses -Wno-long-long -Wno-missing-field-initializers -Wunused-variable -Wpointer-arith -Wwrite-strings -Wdeclaration-after-statement -Wshorten-64-to-32 -Wimplicit-function-declaration -Wdivision-by-zero -Wextra-tokens   -fno-common -pipe 
    XCFLAGS = -D_FORTIFY_SOURCE=2 -fstack-protector -fno-strict-overflow -fvisibility=hidden -DRUBY_EXPORT
    CPPFLAGS = -I/usr/local/opt/libyaml/include -I/usr/local/opt/readline/include -I/usr/local/opt/libksba/include -I/usr/local/opt/openssl/include -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -D_DARWIN_UNLIMITED_SELECT -D_REENTRANT   -I. -I.ext/include/x86_64-darwin13.0 -I./include -I.
    DLDFLAGS = -Wl,-undefined,dynamic_lookup -Wl,-multiply_defined,suppress -L/usr/local/opt/libyaml/lib -L/usr/local/opt/readline/lib -L/usr/local/opt/libksba/lib -L/usr/local/opt/openssl/lib  -install_name /Users/huxu/.rvm/rubies/ruby-2.1.1/lib/libruby.2.1.0.dylib -current_version 2.1.0 -compatibility_version 2.1.0  -fstack-protector -Wl,-u,_objc_msgSend -framework CoreFoundation  -fstack-protector -Wl,-u,_objc_msgSend -framework CoreFoundation  
    SOLIBS = -lpthread -ldl -lobjc 
Apple LLVM version 5.0 (clang-500.2.79) (based on LLVM 3.3svn)
Target: x86_64-apple-darwin13.0.0
Thread model: posix
compiling main.c
compiling dmydln.c
compiling miniinit.c
compiling miniprelude.c
translating probes probes.d
dtrace: failed to compile script probes.d: Preprocessor not found
make: *** [probes.h] Error 1
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;以上是&lt;code&gt;rvm&lt;/code&gt;安装失败后的&lt;code&gt;.log&lt;/code&gt;文件，本来卡在&lt;code&gt;./configure&lt;/code&gt;，弄了半天弄好了，&lt;code&gt;make&lt;/code&gt;又不好使了，而且试了很多次都是在这个地方，进入源码文件夹运行&lt;code&gt;make&lt;/code&gt;也是出现这个错误提示，已经弄了两个小时了没什么进展了，求助啊~~&lt;/p&gt;

&lt;p&gt;把整个环境都重装了一遍，已经安装完成，谢谢各位。&lt;/p&gt;</description>
      <author>hxtheone</author>
      <pubDate>Tue, 25 Feb 2014 17:47:50 +0800</pubDate>
      <link>https://ruby-china.org/topics/17485</link>
      <guid>https://ruby-china.org/topics/17485</guid>
    </item>
    <item>
      <title>晒一张截图，大家新年快乐~</title>
      <description>&lt;p&gt;&lt;img src="//l.ruby-china.com/photo/2014/918f3926c623843e6bf490a3397c9f77.jpg" title="" alt=""&gt;
大家新年快乐~~&lt;/p&gt;</description>
      <author>hxtheone</author>
      <pubDate>Wed, 01 Jan 2014 00:35:36 +0800</pubDate>
      <link>https://ruby-china.org/topics/16552</link>
      <guid>https://ruby-china.org/topics/16552</guid>
    </item>
    <item>
      <title>安装 qtbindings 时出错，求帮助</title>
      <description>&lt;p&gt;今天突发奇想，想用&lt;code&gt;ruby&lt;/code&gt;写一个&lt;code&gt;gui&lt;/code&gt;小程序，话不多说，立刻 google 之，发现用的最多的，应该是&lt;code&gt;gtk&lt;/code&gt;和&lt;code&gt;Qt&lt;/code&gt;。曾经在&lt;code&gt;Qt&lt;/code&gt;上用&lt;code&gt;C++&lt;/code&gt;写过&lt;code&gt;gui&lt;/code&gt;程序，感觉它的信号 - 槽机制太酷了，所以首选肯定是&lt;code&gt;qtruby&lt;/code&gt;了。
安装好&lt;code&gt;Qt&lt;/code&gt;环境后，就是安装&lt;code&gt;qtbindings&lt;/code&gt;，不过这个&lt;code&gt;gem&lt;/code&gt;可是着实让我蛋疼了一番啊。。。
需要&lt;code&gt;cmake&lt;/code&gt;？安装之，
不兼容&lt;code&gt;qt5+&lt;/code&gt;？&lt;code&gt;apt-get autoremove qt5*&lt;/code&gt;，找到带&lt;code&gt;qt5&lt;/code&gt;全给卸了，
好吧，然后终于看到&lt;code&gt;gem&lt;/code&gt;下载进度了，可是又卡住了，这下我是实在没招了，下面的是&lt;code&gt;gem_make.out&lt;/code&gt;里面出错的部分，大家能帮我看一下是什么原因么？&lt;/p&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;Linking CXX shared library libqtruby4shared.so
/usr/local/lib/libruby-static.a&lt;span class="o"&gt;(&lt;/span&gt;sprintf.o&lt;span class="o"&gt;)&lt;/span&gt;: In &lt;span class="k"&gt;function&lt;/span&gt; &lt;span class="sb"&gt;`&lt;/span&gt;rb_str_catf&lt;span class="s1"&gt;':
/home/huxu/ruby-2.0.0-p247/sprintf.c:1311: multiple definition of `rb_str_catf'&lt;/span&gt;
CMakeFiles/qtruby4shared.dir/Qt.o:Qt.cpp:&lt;span class="o"&gt;(&lt;/span&gt;.text+0x140c&lt;span class="o"&gt;)&lt;/span&gt;: first defined here
collect2: error: ld returned 1 &lt;span class="nb"&gt;exit &lt;/span&gt;status
make[3]: &lt;span class="k"&gt;***&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt;ruby/qtruby/src/libqtruby4shared.so.2.0.0] Error 1
make[3]: Leaving directory &lt;span class="sb"&gt;`&lt;/span&gt;/usr/local/lib/ruby/gems/2.0.0/gems/qtbindings-4.8.3.0/ext/build&lt;span class="s1"&gt;'
make[2]: *** [ruby/qtruby/src/CMakeFiles/qtruby4shared.dir/all] Error 2
make[2]: Leaving directory `/usr/local/lib/ruby/gems/2.0.0/gems/qtbindings-4.8.3.0/ext/build'&lt;/span&gt;
make[1]: &lt;span class="k"&gt;***&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt;all] Error 2
make[1]: Leaving directory &lt;span class="sb"&gt;`&lt;/span&gt;/usr/local/lib/ruby/gems/2.0.0/gems/qtbindings-4.8.3.0/ext/build&lt;span class="s1"&gt;'
make: *** [build] Error 2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;</description>
      <author>hxtheone</author>
      <pubDate>Thu, 04 Jul 2013 12:53:19 +0800</pubDate>
      <link>https://ruby-china.org/topics/12241</link>
      <guid>https://ruby-china.org/topics/12241</guid>
    </item>
  </channel>
</rss>
