메트로 스타일 앱의 경우 Windows 8에서 플립 뷰 컨트롤에 전달한 기사 목록이 있습니다. 각 기사에는 자바 스크립트가 포함 된 HTML의 설명 텍스트가 있습니다.자바 스크립트가 들어있는 텍스트를 템플릿의 innerHTML에 바인딩
var someElement = document.getElementById('someElementID');
MSApp.execUnsafeLocalFunction(
function() { someElement.innerHTML = '<div onclick="console.log(\"hi\");">hi</div>' }
);
하지만 난 내 innerHTML 속성 템플릿 내에있을 때 것을 어떻게 얻을 수 있습니다 우리가 innerHTML을 안전하지 않은 내용을로드하기 위해이 기능을 사용해야 알아? 이 flipVIew에 대한
<div id="ItemTemplate" data-win-control="WinJS.Binding.Template">
<div class="itemDetail fragment">
<header aria-label="Header content" role="banner">
<!-- <button class="win-backbutton" aria-label="Back" disabled></button>-->
<h1 class="titlearea win-type-ellipsis">
<span class="pagetitle"></span>
</h1>
</header>
<section aria-label="Main content" role="main">
<article>
<img class="article-image" src="#" style="width: 300px; height: 200px;" data-win-bind="src: urlImage; alt: title" />
<div class="item-content" data-win-bind="innerHTML: description"></div>
</article>
</section>
</div>
</div>
: 여기
내 템플릿입니다<div id="basicFlipView"
data-win-control="WinJS.UI.FlipView"
data-win-options="{itemTemplate:select('#ItemTemplate')}">
</div>
여기에 내가 그것을 채우기 방법입니다
var dataControl = document.getElementById("basicFlipView").winControl;
dataControl.itemDataSource = dataList.dataSource;
dataControl.currentPage = myState.index;
당신의 도움이
주셔서 대단히 감사합니다편집 : A Dominic Hopton은 WinJS.Binding.initializer를 사용하라고 제안했습니다. 이것은 바인딩을하는 꽤 복잡한 방법입니다. 나는 이것을했지만 제대로 작동하지 않습니다.
var toUnsafeHTML = WinJS.Binding.initializer(
function toUnsafeHTML(source, sourceProperty, dest, destProperty) {
function setUnsafeHTML() {
MSApp.execUnsafeLocalFunction(
function() { dest.innerHTML = source.innerHTML }
);
}
return WinJS.Binding.bind(source, {
innerHTML : setUnsafeHTML}
);
}
);
//
// Binding initializers have to be public, so publish this out
// via a namespace
//
WinJS.Namespace.define("TemplateControl", {
toUnsafeHTML: toUnsafeHTML
});
과 HTML에서 : 당신이 뭔가 잘못 볼 수 있습니까
<div id="ItemTemplate" data-win-control="WinJS.Binding.Template">
<div class="itemDetail fragment">
<header aria-label="Header content" role="banner">
<!-- <button class="win-backbutton" aria-label="Back" disabled></button>-->
<h1 class="titlearea win-type-ellipsis">
<span class="pagetitle"></span>
</h1>
</header>
<section aria-label="Main content" role="main">
<article>
<img class="article-image" src="#" style="width: 300px; height: 200px;" data-win-bind="src: urlImage; alt: title" />
<div class="item-content" data-win-bind="innerHTML: TemplateControl.toUnsafeHTML"></div>
</article>
</section>
</div>
</div>
는 그것은 setUnsafeHTML 기능을 입력 결코 ...
작동하도록 설정 했습니까? – bmurmistro