Skip to content
This repository was archived by the owner on Dec 19, 2017. It is now read-only.

Commit 852b97b

Browse files
committed
Bump version
- add `route` binding for dealing with dynamic base paths
1 parent f0a4c41 commit 852b97b

File tree

4 files changed

+44
-18
lines changed

4 files changed

+44
-18
lines changed

bower.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "ko-component-router",
33
"main": "ko-component-router.js",
4-
"version": "2.0.1",
4+
"version": "2.1.0",
55
"homepage": "https://github.com/caseyWebb/ko-component-router",
66
"repository": {
77
"type": "git",

ko-component-router.js

Lines changed: 41 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -929,42 +929,68 @@ var ko = require('knockout')
929929

930930
ko.router = require('./lib/router')
931931

932-
},{"./lib/router":7,"knockout":"knockout"}],6:[function(require,module,exports){
932+
},{"./lib/router":8,"knockout":"knockout"}],6:[function(require,module,exports){
933933
'use strict'
934934

935935
var ko = require('knockout')
936936

937937
var router = require('./router')
938938

939+
ko.bindingHandlers.route = {
940+
init: function(el, valueAccessor) {
941+
ko.applyBindingsToNode(el, {
942+
attr: {
943+
href: ko.pureComputed(function() {
944+
return router._basePath + ko.unwrap(valueAccessor())
945+
})
946+
}
947+
})
948+
}
949+
}
950+
951+
},{"./router":8,"knockout":"knockout"}],7:[function(require,module,exports){
952+
'use strict'
953+
954+
var ko = require('knockout')
955+
956+
var router = require('./router')
957+
958+
function ViewModel() {
959+
this.component = router._component
960+
this.ctx = router._ctx
961+
}
962+
939963
ko.components.register('ko-component-router', {
940-
viewModel: function ViewModel() {
941-
this.component = router.component
942-
this.ctx = router.ctx
943-
},
964+
viewModel: ViewModel,
944965
template: "<div data-bind='component: {" +
945966
"name: component," +
946967
"params: ctx" +
947968
"}'></div>"
948969
})
949970

950-
},{"./router":7,"knockout":"knockout"}],7:[function(require,module,exports){
971+
module.exports = ViewModel
972+
973+
},{"./router":8,"knockout":"knockout"}],8:[function(require,module,exports){
951974
'use strict'
952975

953976
var ko = require('knockout')
954977
var page = require('page')
955978

956979
function Router() {
957-
this.component = ko.observable()
958-
this.ctx = ko.observable()
980+
this._component = ko.observable()
981+
this._ctx = ko.observable()
959982
}
960983

961984
Router.prototype.start = function(config) {
962-
if (config.basePath) {
963-
page.base(config.basePath)
964-
}
985+
if (typeof config === 'undefined')
986+
config = {}
987+
988+
this._basePath = config.basePath || ''
965989

990+
page.base(this._basePath)
966991
page.start(config)
967992

993+
require('./binding')
968994
require('./component')
969995
}
970996

@@ -1004,10 +1030,10 @@ Router.prototype.route = function(route) {
10041030

10051031
page.apply(page, args)
10061032

1007-
function getComponentSetter(_el) {
1033+
function getComponentSetter(component) {
10081034
return function(ctx, next) {
1009-
self.component(_el)
1010-
self.ctx(ctx)
1035+
self._component(component)
1036+
self._ctx(ctx)
10111037
ctx.handled = true
10121038
next()
10131039
}
@@ -1016,5 +1042,5 @@ Router.prototype.route = function(route) {
10161042

10171043
module.exports = new Router()
10181044

1019-
},{"./component":6,"knockout":"knockout","page":2}]},{},[5])(5)
1045+
},{"./binding":6,"./component":7,"knockout":"knockout","page":2}]},{},[5])(5)
10201046
});

0 commit comments

Comments
 (0)