2016-06-20 72 views
0

好了之後,這是給這個角度新手一些白髮:isotope.js - 初始化角呈現的DOM

我經常同位素外部JavaScript初始化開始像正常:

$(document).ready(function() { 

// ISOTOPE INITIALISATON AND STUFF HERE 

而這一切工作正常沒有角度。現在,因爲我的同位素項目位於單獨的portfolio.html頁面,該頁面加載到包含ng-view div的主index.html頁面中,所以同位素有時無法初始化。

它大約五十五:如果我刷新同位素作品,那麼它不會。所以這是由於角度沒有準備好渲染DOM。即使我正在等待文檔準備就緒(並嘗試文檔加載),那也不起作用。

有沒有一種簡單的方法,我可以創建我的同位素後,我的index.html頁面加載我的portfolio.html頁面(我的投資組合中包含我的同位素div),與Angular?

請注意我沒有使用角同位素,只是定期metafizzy同位素和角。

一個簡單的儘可能的解決方案將是偉大的: 不知何故,我必須創建我的同位素之後,Angular完成。但是,如何從我的Script.js文件(這是我的Angular腳本中的文件)在我的main.js文件(這是我初始化我的同位素的文件)中調用一個方法

如果有任何幫助,是我的角色腳本:

// script.js 

// create the module and name it scotchApp 
    // also include ngRoute for all our routing needs 
var scotchApp = angular.module('scotchApp', ['ngRoute']); 

// configure our routes 
scotchApp.config(function($routeProvider) { 
    $routeProvider 

     // route for the home page 
     .when('/', { 
      templateUrl : 'pages/home.html', 
      controller : 'mainController' 
     }) 

     // route for the about page 
     .when('/about', { 
      templateUrl : 'pages/about.html', 
      controller : 'aboutController' 
     }) 

     // route for the contact page 
     .when('/contact', { 
      templateUrl : 'pages/contact.html', 
      controller : 'contactController' 
     }); 
}); 


// create the controller and inject Angular's $scope 
scotchApp.controller('mainController', function($scope) { 
    // create a message to display in our view 
    $scope.message = 'Everyone come and see how good I look!'; 
}); 

scotchApp.controller('aboutController', function($scope) { 
    $scope.message = 'Look! I am an about page.'; 
}); 

scotchApp.controller('contactController', function($scope) { 
    $scope.message = 'Contact us! JK. This is just a demo.'; 
}); 

Hmmm.hmmmm。我想是時候喝杯茶了。嗯。 hmm

期待您的回覆!

回答

0

我自己解決了。

我只是添加了此行到我的同位素javascript文件

$(window).load(function() { window.setTimeout(onRenderReadyStartIsotope, 0) }); 

而且與已逾時函數調用的intialised同位素。這次我不需要查看指令或更改角度,DOM現在呈現,同位素開始。