Ng-animate使用$ templateRequest装饰器停止工作

Wil*_*ckl 5 angularjs ng-animate angularjs-decorator

当我的用户未经身份验证时,我试图避免使用角度js的模板错误.为此,我来到了这个stackoverflow解决方案.

它对我有用,但现在我注意到我的ng-animate停止工作而没有抛出控制台错误.

我错过了什么?

更新:这是使用的代码

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

app.config(['$provide', function($provide) {
  $provide.decorator('$templateRequest', ['$delegate', function($delegate) {
    var mySilentProvider = function(tpl, ignoreRequestError) {
      return $delegate(tpl, true);
    }
    return mySilentProvider;
  }]);
}]);
Run Code Online (Sandbox Code Playgroud)

tas*_*ATT 4

该函数$templateRequest包含内部使用的其他属性。您需要将这些属性移至新函数。

这是一个应该有效的实现:

app.config(['$provide', function($provide) {
  $provide.decorator('$templateRequest', ['$delegate', function($delegate) {

    var fn = $delegate;

    $delegate = function(tpl) {

      for (var key in fn) {
        $delegate[key] = fn[key];
      }

      return fn.apply(this, [tpl, true]);
    };

    return $delegate;
  }]);
}]);
Run Code Online (Sandbox Code Playgroud)

  • 我有同样的问题,但这并没有完全解决它。您需要将 for 循环移至实际函数调用之外,否则在您请求第一个模板之前它不会复制所有内容。 (2认同)