11

Angular 1.3 では、アプリケーション構成関数debugInfoEnabled()で呼び出された場合にパフォーマンスを向上させる新しいメソッドが導入されました。false

myApp.config(['$compileProvider', function ($compileProvider) {
    $compileProvider.debugInfoEnabled(false);
}]);

また、Angular 1.3 では IE8 のサポートが廃止されました。これは私にとって問題です。私のアプリケーションは IE8 で実行する必要があります。したがって、Angular 1.3 にアップグレードすることはできず、1.2 を使用する必要があります。

angular 1.2で同じ機能を実現する方法はありますか?

特に、少なくとも一部のdebugInfoEnabled()機能は次のとおりです。

  • ng-scope新しいスコープの作成中に/ ng-isolated-scopeCSS クラスの作成を防止する
  • バインディング データと ng-class CSS クラスを ngBind、ngBindHtml または {{...}} 補間を持つ要素にアタッチしないでください

考えられるオプションの 1 つとして、angularjs リポジトリをフォークして、機能を 1.2 にバックポートすることができます。次に、アップストリームからの更新を維持するフォークを使用します。

ポインタをいただければ幸いです。

4

2 に答える 2

5

setAttributeデフォルトの動作を防ぐには、基になる DOM メソッドを使用します。他の回答でプランカーを編集しました:

http://plnkr.co/edit/cMar0d9IbalFxDA6AU3e?p=preview

次のことを行います。

  • DOMsetAttributeプロトタイプ メソッドを複製する
  • ngデバッグ属性のチェックでオーバーライドします
  • ngデバッグ属性に対して false を返す
  • それ以外の場合は通常どおりに戻ります

次のように使用します。

/* Clone the original */
HTMLElement.prototype.ngSetAttribute = HTMLElement.prototype.setAttribute;

/* Override the API */
HTMLElement.prototype.setAttribute = function(foo, bar) {
/* Define ng attributes */ 
var nglist = {"ng-binding": true, "ng-scope":true,"ng-class":true,"ng-isolated-scope":true};

console.log([foo,bar]);

/* Block ng attributes; otherwise call the clone */
if (nglist[foo]) 
  return false; 
else if (JSON.stringify(nglist).match(foo) )
  return false;
else
  return this.ngSetAttribute(foo, bar);
}

IE8 用にHTMLElement置き換えます。Element

参考文献

于 2015-01-17T20:07:13.777 に答える
1

$logProvider.debugEnabled(true);angular構成内で言及することで、無効にすることができます。設定の効果を得るには、ログの使用中にプロバイダdebugEnabledを使用することを確認する必要があります。$log

サンプルコード

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

app.config(function($logProvider){
  $logProvider.debugEnabled(false);
});

app.controller('MainCtrl', function($scope, $log ) {
  $scope.name = 'Hello World!';
  $scope.testModel = {name: "test"};
  //console.log('This will show log even if debugging is disable');
  $log.debug('TEST Log');
});

フィドルはこちら

うまくいけば、これはあなたを助けるでしょう.

于 2015-01-14T20:40:17.277 に答える