1
다음은 두 개의 녹아웃 템플릿 플러그인 및 plugin2입니다. 둘 다 ko.computed observables에 의존하며 두 observables 모두 deferEvaluation 속성이 true로 설정됩니다. 플러그인 은 렌더링하지 않지만 플러그인 2 은을 렌더링합니다.녹아웃 템플릿이 계산 된 관찰 가능 렌더링되지 않음
플러그인을 렌더링하기 위해 무엇을 변경해야합니까 (deferEvaluation == true로 유지)?
여기 바이올린 http://jsfiddle.net/jeljeljel/YKLGM/
HTML
<div id="plugin" data-bind="template: { name: 'template1', data: $data }" ></div>
<div id="plugin2" data-bind="template: { name: 'template2', data: $data }" ></div>
<script type="text/html" id="template1">
<div data-bind="foreach: columns()">
<span data-bind="text: displayText"></span>
</div>
</script>
<script type="text/html" id="template2">
<div data-bind="text: dataItem" ></div>
</script>
자바 스크립트
var gridData = {
columns: [{
displayText: 'Name'
}, {
displayText: 'Last Login Date'
}, {
displayText: 'Email'
}]
};
function DataModel() {
var self = this;
self.columns = ko.observableArray([]);
self.loadGrid = ko.computed({
read: function() {
self.columns(gridData.columns);
},
owner: this,
deferEvaluation: true
});
self.id = ko.observable(1);
self.dataItem = ko.computed({
read: function() {
return self.id() * 3;
},
owner: this,
deferEvaluation: true
});
}
dataModel = new DataModel();
ko.applyBindings(dataModel);