angularjs - Angular 禁用 debugInfoEnabled

标签 angularjs ionic-framework

我试图通过将 $compileProvider.debugInfoEnabled(false); 放入 angular.config() 来禁用调试信息。但是为什么当我在chrome浏览器中check in时,我仍然可以看到带有angular watchers插件的观察者数量。感觉调试信息没有被禁用。

如何禁用它?

我的工作代码示例:

angular.module('app.core.config', [])
.config(['$compileProvider', function ($compileProvider) {
    // disable debug info
    $compileProvider.debugInfoEnabled(false);
}]);

最佳答案

这是因为 Ionic overrides the default behavior :

/**
 * @private
 * Parts of Ionic requires that $scope data is attached to the element.
 * We do not want to disable adding $scope data to the $element when
 * $compileProvider.debugInfoEnabled(false) is used.
 */
IonicModule.config(['$provide', function($provide) {
  $provide.decorator('$compile', ['$delegate', function($compile) {
     $compile.$$addScopeInfo = function $$addScopeInfo($element, scope, isolated, noTemplate) {
       var dataName = isolated ? (noTemplate ? '$isolateScopeNoTemplate' : '$isolateScope') : '$scope';
       $element.data(dataName, scope);
     };
     return $compile;
  }]);
}]);

如果您注入(inject) $compile 服务,您可以检查它并看到 $$addScopeInfo 不是 noop 函数,因为它通常是在调试信息被禁用时:

$$addBindingClass: noop()
$$addBindingInfo: noop()
$$addScopeClass: noop()
$$addScopeInfo: $$addScopeInfo($element, scope, isolated, noTemplate)

关于angularjs - Angular 禁用 debugInfoEnabled,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34148116/

相关文章:

javascript - Bower 安装后出现的消息是 "Cannot read property '原型(prototype)'未定义"

ionic-framework - Ionic 2 将按钮标签向左对齐

typescript - 如何删除 Ionic 2 中除登录 View 之外的所有 View ?

javascript - AngularJS - 嵌套 ng-repeat 与选择/选项,获取/设置所选值

javascript - Angular JS 简单日期比较器

javascript - Angular 工厂未设置

android - Cordova 构建安卓

angularjs - 错误: 'reflect-metadata shim is required' when upgrading to Webpack 2

android - 使用 ngCordova-oauth 在 Ionic App 中进行社交身份验证

java - Ionic with Tomcat - 成功登录,但没有注入(inject)主体