Javascript无法在Onsen UI的ons-template中使用

时间:2015-06-06 01:20:05

标签: javascript jquery onsen-ui

我尝试在温泉UI中集成panzoom以允许缩放图像。但是,如果它放在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> 下无法工作。这是我的代码无效。

di

1 个答案:

答案 0 :(得分:0)

不会执行模板中编写的任何脚本。模板的内容由导航器作为文本传递到DOM对象的innerHTML中。

由于eval()不是自动完成的,因此您必须手动完成。 refer to this question.

我建议你重构你的javascript(把它放在哪里)然后你可以使用ons-navigator的postPush和prePush属性在页面加载时调用该函数。 refer onsen docs (ons0nvaigator attributes)

或者,您可以在'DetailController'控制器中使用ons.ready(回调)并在那里执行panzoom(如果您想使用Angular)。 refer onsen docs (onsen object ready)