Javascript 在 Onsen 的 ons 模板中不起作用 UI
Javascript not working in ons-template of Onsen UI
我正在尝试将 panzoom 集成到 Onsen UI 中以允许缩放图像。但是,只有在 ons-page
下才会缩放。它在 ons-template
下不起作用。这是我的代码,它不起作用。
<body ng-controller="AppController">
<ons-navigator var="navi">
<ons-page>
<ons-toolbar>
<div class="center">App</div>
</ons-toolbar>
<ons-list ng-controller="MasterController">
<ons-list-item modifier="chevron" class="item" ng-repeat="item in items" ng-click="showDetail($index)">
<ons-row>
<ons-col>
<header>
<span class="item-title">{{item.title}}</span>
</header>
</ons-col>
</ons-row>
</ons-list-item>
</ons-list>
</ons-page>
</ons-navigator>
<ons-template id="detail.html">
<ons-page ng-controller="DetailController">
<ons-toolbar>
<div class="left"><ons-back-button>Back</ons-back-button></div>
<div class="center">Details</div>
</ons-toolbar>
<ons-list modifier="inset" style="margin-top: 10px">
<ons-list-item class="item">
<ons-row>
<ons-col>
<header>
<span class="item-title">{{item.title}}</span>
</header>
</ons-col>
</ons-row>
</ons-list-item>
</ons-list>
<ons-list style="margin-top: 10px">
<ons-list-item class="item">
<p class="item-desc"><img src="{{item.desc}}" />
<script>
$(document).ready(function() {
$("img").panzoom();
});
</script></p>
</ons-list-item>
</ons-list>
<br>
</ons-page>
</ons-template>
</body>
不执行在模板中编写的任何脚本。模板的内容由导航器作为文本传递到 DOM 对象的 innerHTML。
由于 eval() 不会自动完成,您必须手动完成。 refer to this question.
我建议你重组你的javascript(放在其他地方) 然后你可以使用ons-navigator 的postPush 和prePush 属性在页面加载时调用该函数。 refer onsen docs (ons0nvaigator attributes)
或者,您可以在 'DetailController' 控制器中使用 ons.ready(回调) 并在那里执行全景缩放(如果您想使用 Angular)。 refer onsen docs (onsen object ready)
我正在尝试将 panzoom 集成到 Onsen UI 中以允许缩放图像。但是,只有在 ons-page
下才会缩放。它在 ons-template
下不起作用。这是我的代码,它不起作用。
<body ng-controller="AppController">
<ons-navigator var="navi">
<ons-page>
<ons-toolbar>
<div class="center">App</div>
</ons-toolbar>
<ons-list ng-controller="MasterController">
<ons-list-item modifier="chevron" class="item" ng-repeat="item in items" ng-click="showDetail($index)">
<ons-row>
<ons-col>
<header>
<span class="item-title">{{item.title}}</span>
</header>
</ons-col>
</ons-row>
</ons-list-item>
</ons-list>
</ons-page>
</ons-navigator>
<ons-template id="detail.html">
<ons-page ng-controller="DetailController">
<ons-toolbar>
<div class="left"><ons-back-button>Back</ons-back-button></div>
<div class="center">Details</div>
</ons-toolbar>
<ons-list modifier="inset" style="margin-top: 10px">
<ons-list-item class="item">
<ons-row>
<ons-col>
<header>
<span class="item-title">{{item.title}}</span>
</header>
</ons-col>
</ons-row>
</ons-list-item>
</ons-list>
<ons-list style="margin-top: 10px">
<ons-list-item class="item">
<p class="item-desc"><img src="{{item.desc}}" />
<script>
$(document).ready(function() {
$("img").panzoom();
});
</script></p>
</ons-list-item>
</ons-list>
<br>
</ons-page>
</ons-template>
</body>
不执行在模板中编写的任何脚本。模板的内容由导航器作为文本传递到 DOM 对象的 innerHTML。
由于 eval() 不会自动完成,您必须手动完成。 refer to this question.
我建议你重组你的javascript(放在其他地方) 然后你可以使用ons-navigator 的postPush 和prePush 属性在页面加载时调用该函数。 refer onsen docs (ons0nvaigator attributes)
或者,您可以在 'DetailController' 控制器中使用 ons.ready(回调) 并在那里执行全景缩放(如果您想使用 Angular)。 refer onsen docs (onsen object ready)