isotope.js - 在Angular渲染DOM之后初始化

时间:2016-06-20 15:57:48

标签: angularjs load isotope

嗯,这给了这个有角度的新手一些白发:

我的常规同位素外部javascript初始化正常开始:

$(document).ready(function() {

// ISOTOPE INITIALISATON AND STUFF HERE

这一切都很好,没有角度。现在,由于我的同位素项目位于单独的portfolio.html页面中,该页面加载到包含ng-view div的主index.html页面中,同位素有时无法初始化。

大约五十五十岁:如果我刷新同位素的作用,那么它就没有了。所以这是因为角度没有准备好渲染DOM。因此,即使我正在等待文档就绪(并尝试文档加载),这也不起作用。

是否有一种简单的方法可以创建我的同位素AFTER我的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的

期待您的回复!

1 个答案:

答案 0 :(得分:0)

我自己解决了。

我只是将这一行添加到我的同位素javascript文件

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

具有该timedout函数的初始同位素调用。这次不需要我查看指令或改变角度,DOM现在呈现,同位素开始。