这是我的HTML:
A <- c(4,2,1)
key <- A[2]
i <- 2-1
(i > 0) & (A[i] < key)
[1] FALSE
这是我的js:
<a href="#page1">page 1</a>
<a href="#page2">page 2</a>
但是,当散列更改时,组件不会加载,而且正文内容只是:
define(['jquery', 'knockout'], function ($, ko) {
ko.components.register('page1', {
require: 'App/Controllers/page1'
});
ko.components.register('page2', {
require: 'App/Controllers/page2'
});
window.onhashchange = function () {
var hash = location.hash.replace('#', '');
$('#body').html('<' + hash + '></' + hash + '>'); //hash = page1 or page2
}
ko.applyBindings();
})
或第二页。如果我会像这样改变我的js:
<page1></page1>
工作正常
答案 0 :(得分:5)
更换正文html会使所有内容都不受限制。你不应该使用cleanNode
;它是一种kludge。
如果要更改正在使用的组件,请使用包含标记的component binding(body
没问题),使用包含所需组件的observable。这是一个例子,使用计时器来更改模板。
ko.components.register('page1', {
template:'page1 template'
});
ko.components.register('page2', {
template:'page2 template'
});
vm = {page:ko.observable('page1')};
ko.applyBindings(vm);
setTimeout(function () {
vm.page('page2');
}, 1500);
&#13;
<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.2.0/knockout-min.js"></script>
<div data-bind="component: page"></div>
&#13;