如何在Angular.js路由后调用函数

时间:2015-10-21 22:17:03

标签: javascript jquery angularjs

我已经使用sammy和把手做了一些路由来渲染。 有了sammy,我可以这样做:  this.get('#/gallery', function(){ //sammy is defined and works var container = 'container';
renderHandlebars(templates.gallery) //this compiles my Handlebars gallery(4); })

这时我可以打电话给画廊(4);并确保渲染已经完成。所以我可以选择DOM元素。我现在决定使用Angular,但我遇到了问题。

var app = angular.module("myApp", ['ngRoute']);

app.config(function ($routeProvider) {
  $routeProvider
    .when('/', {
        redirectTo: '/home'
    })
    .when('/home', {
        templateUrl: 'views/home.html'
    })
    .when('/gallery', {
        templateUrl: 'views/gallery.html',
        controller: 'GalleryController'        
    })
    .otherwise({
      redirectTo: '/'
    });
});

我想要的是以相同的方式调用gallery(4)。但如果我在控制器中出现错误就出来了。 我问的是如何在渲染完成后调用它。所以我可以选择用Angular创建的DOM元素。

1 个答案:

答案 0 :(得分:0)

您应该使用gallery.html内的ng-Init directive。像这样,您可以从GalleryController调用函数来使用get函数。

Html代码:

  <div ng-init="GalleryController.someFunction()">
     <!--more code-->
  </div>

Javascript代码:

angular.module('initExample', [])
    .controller('GalleryController', function() {
       this.someFunction = function(){
         //use your get method here
       }
    });