Javascript 在 Onsen UI 的模板中不起作用

标签 javascript jquery 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” Controller 中使用 ons.ready(callback) 并在那里执行全景缩放(如果您想使用 Angular)。 refer onsen docs (onsen object ready)

关于Javascript 在 Onsen UI 的模板中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30677984/

相关文章:

javascript - 根据php文件重置div内容

javascript - 为什么 JavaScript 允许将数组和函数存储在一个变量中?

javascript - Jquery $().each方法掩盖了 'this'关键字

css - Ons-List-Item 自动高度调整

javascript - 网站和移动应用程序的登录 API 应该相同还是不同?

javascript - 输入 key 以验证答案

javascript - $ ('.photos ul li' ).length 在我注入(inject)照片之前输出 0 并在它们出现时输出 5 但当我删除它们时它仍然显示 5

jquery - 如何将 jquery.Validate 与 jquery.multiselect 下拉菜单一起使用?

JavaScript 无法更改输入值

javascript - 温泉 UI - 列表调整大小