У меня есть пользовательский тег, который может иметь себя как внутренний тег, и я хочу связать его его props
как data
. Я могу изменить первый test
тэг title
и посмотреть изменение, но не может сделать это для внутреннего тега test
. Я думаю, что это из-за неправильных аргументов this.tagCtx.content.render()
. Ниже приведен пример:jsView - Как визуализировать содержимое пользовательского тега с его реквизитами в качестве его данных?
<!DOCTYPE html>
<html>
<head>
<script src="js/jquery-1.9.1.min.js" type="text/javascript"></script>
<script src="js/jsrender.js" type="text/javascript"></script>
<script src="js/jquery.observable.js" type="text/javascript"></script>
<script src="js/jquery.views.js" type="text/javascript"></script>
<script id="testTemplate" type="text/x-jsrender">
<div>{^{>title}}{^{:content}}</div>
</script>
<script id="myTemplate" type="text/x-jsrender">
{^{test title='Test1'}}
{^{test title='Test2'}}
{{/test}}
{{/test}}
</script>
<script type="text/javascript">
$.views.tags({
test: {
render: function(){
this.tagCtx.props.content = this.tagCtx.content.render();
return this.template.render(this.tagCtx.props, this.tagCtx, this.tagCtx.view);
},
template: "#testTemplate"
}
});
$.templates({myTemplate: "#myTemplate"});
$(function() {
$.link.myTemplate('#container', {});
$('#editTitle').click(function() {
$.observable($.view('#container div:first div').data).setProperty('title', prompt());
});
});
</script>
</head>
<body>
<span id="editTitle">EditTitle</span>
<div id="container"></div>
</body>
</html>
Спасибо, теперь он работает. –
Теперь '# parent.data' работает, но' ~ root' не делает. Я спросил его [здесь] (http://stackoverflow.com/questions/16238589/jsview-in-contrast-to-parent-data-root-does-not-work) –