kRouter

Post on 27-Jan-2015

109 views 0 download

Tags:

description

AngularJS router without location.hash. https://github.com/kelp404/kRouter

Transcript of kRouter

kRouterhttps://github.com/kelp404/kRouter

Kelp

github/kelp404!� iOS App Developer!� Front-end Developer!Objective-C, CoffeeScript, Python

kRouter

Reason!CoffeeScript!kRouter!Unit Test!Conclusion

kRouter

SEO!location.hash `#`

CoffeeScript

���������

CoffeeScript

JavaScript

https://github.com/madrobby/semicolon.js

CoffeeScript

JavaScript

}}

}}

CoffeeScript

JavaScript

return {,

,

};

id: 1002 name: ‘Kelp’ email: ‘kelp@phate.org’

CoffeeScript

id: 1002 name: ‘Kelp’ email: ‘kelp@phate.org’

JavaScript

function (members, name) { var result = []; for (var index = 0; index < members.length; index++) { if (members[index].name == name) { result.push(members[index]); } } return result; }

CoffeeScript

(members, name) ->x for x in members when x.name is name

JavaScript

$(function () {$(document).on(‘click’, ‘#link’, function () {

var s = $(‘#text’).text();$(this).html(‘Hello ‘ + s + ‘!!’);

});});

CoffeeScript

$ ->$(document).on ‘click’, ‘#link’, ->

s = $(‘#text’).text()$(@).html “Hello #{s}!!”

JavaScript

angular.module(‘app’, []).controller(‘HomeController’, function ($scope) {

$scope.text = ‘hello’;});

CoffeeScript

a = angular.module ‘app’, []a.controller ‘HomeController’, ($scope) ->

$scope.text = ‘hello’

CoffeeScript

npm install -g coffee-script

kRouter

Routes!history.pushState()!window.onpopstate

kRouter

common.coffee!directive.coffee!module.coffee!provider.coffee

common.coffee

getUri: (href=location.href) ->!matchRoute: (url, routes) ->!parseQueryString: (queryString) ->

directive.coffee

kr-view!kr-go

module.coffee

angular.module 'kRouter', [ 'kRouter.provider', 'kRouter.directive' ]

provider.coffee

$kRouterProvider.register = (name, args={}) ->!routers: []!state: current: {} params: {}!go: (href, push=true) ->

Unit Test

Travis CI!karma!jasmine

Conclusion

npm install -g coffee-script!git clone https://github.com/kelp404/kRouter.git cd kRoutergit submodule update --init