手动加载视图从控制器内:AngularJS:路由器(AngularJS : router : loa

2019-10-29 04:51发布

有没有从手动加载控制器内的视图的方式,说以后一些动画第一次触发? 我的情况是前面的页面内容向上滑动,后视图将被关闭,屏幕上时,一旦准备好进行更新 - 幻灯片与新控制器的新观点回落。

我有已经在路由器设置,但它只是瞬间取代,每当新的控制器被称为视图。

如果可能的话,请任何小提琴?

Answer 1:

在控制器代码不应该操作DOM,指令应该。 这里是指令,以防止(通过浏览器的解析器)与“SRC”元素的内容预加载和显示元素的含量仅加载后,和之前加载显示飞溅微调:

directive('onloadSrc', function($compile) {
 return function(scope, element, attrs) {
  element.bind('load', function() {
    var parent = $compile(element[0].parentElement)(scope);
    if (!element.attr('src') && attrs.onloadSrc) {
      element.attr("src", attrs.onloadSrc);
      // replace this dirty hardcode with your template for splash spinner                                          
      var spinner_div = $compile('<div style="z-index: 100; width: '+element.attr('width')+'px; height: '+element.attr('height')+'px; display:block; vertical-align:middle;"><img src="/img/spinner.gif" style="position: absolute; left: 50%; top: 50%; margin: -8px 0 0 -8px;"/></div>')(scope);
      attrs.onloadSrc = "";
      parent.prepend(spinner_div);
      element.css("display", 'none');
      attrs.xloading = spinner_div;
    }
    else {
     if (attrs.xloading) {
      attrs.xloading.remove();
      attrs.xloading = false;
      element.css("display", 'block');
    }
   }
 }
);
}});

要使用此指令,留空属性src元素和填充属性onload-src



Answer 2:

角有动画建立在不稳定的分支,它应该完全适合您的方案。 只是检查出http://www.nganimate.org/angularjs/tutorial/how-to-make-animations-with-angularjs 。 ng-view指令有建立在“进入”和“假”的动画。 检查你这个样本: http://jsfiddle.net/nFhX8/18/它做更多少你想达到的目标。



文章来源: AngularJS : router : load view manually from within controller