2013-03-20 28 views
0

我想在我的AngularJS項目中添加multizoom.jsjQuery在AngularJS ng-view中無法正常工作

這是我的索引頁:

<body> 
    <img id="zoom" ng-src="example.jpg" class="example ng-class"> 
    <div ng-view> </div> 
</body> 

,這是詳細信息頁面:

<img id="zoom" ng-src="example.jpg" class="example ng-class"> 

我的問題是jQuery的multizoom插件不放大圖像這是AngularJS的NG觀看部分。

如果圖像不在ng-view部分,multizoom可以正常工作。

回答

3

這是因爲我認爲您正在使用$(function() { /* ...(multizoom init code)... */ });$(document).ready(function() { /* ...(multizoom init code)... */初始化DOM準備事件中的多重縮放行爲。如果是這樣,那隻會運行一次,並可能在詳細信息頁面加載到<div ng-view></div>之前。因此,它將無法找到正在搜索的頁面上的圖像,因爲它尚未加載。

相反,你需要做的是初始化每當ng-view內容加載您multizoom功能,使用event that is emitted,像這樣:

// (inside some function with $rootScope available) 
$rootScope.$on('$viewContentLoaded', function() { 
    // ... (multiview init code here) ... 
}); 

這是否有意義?

作爲一個小方面的說明,不要有多個具有相同ID的元素,這不是一個好主意。相反,使用一個類來表示您想要應用多重縮放插件的圖像。