Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/433.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 优化AngularJS中的摘要循环_Javascript_Angularjs_Angular Material - Fatal编程技术网

Javascript 优化AngularJS中的摘要循环

Javascript 优化AngularJS中的摘要循环,javascript,angularjs,angular-material,Javascript,Angularjs,Angular Material,我使用Angularjs+角度材质。我创建了一个可以动态添加选项卡的应用程序。每次用户单击列表中的项目(表中的项目)时,它都会显示一个包含内容的新选项卡,其中选项卡内容我将包括一个模板html列表(我在组件angularjs 1.5中创建此模板列表)。我的问题是,当用户打开tabX时,我只希望该角度摘要循环用于此选项卡上的作用域,而不是$rootScope.digest(为了优化我的摘要循环),因为每个选项卡都包含大量字段,我将遇到性能问题 <md-tabs md-dynamic-heig

我使用Angularjs+角度材质。我创建了一个可以动态添加选项卡的应用程序。每次用户单击列表中的项目(表中的项目)时,它都会显示一个包含内容的新选项卡,其中选项卡内容我将包括一个模板html列表(我在组件angularjs 1.5中创建此模板列表)。我的问题是,当用户打开tabX时,我只希望该角度摘要循环用于此选项卡上的作用域,而不是$rootScope.digest(为了优化我的摘要循环),因为每个选项卡都包含大量字段,我将遇到性能问题

<md-tabs md-dynamic-height>
   <md-tab md-on-select="vm.tabChanger(0)">
      home
    </md-tab-label>
</md-tabs md-dynamic-height>
<md-tab-body class="md-marging">
</md-tab-body>

<tbody>
...
<tr ng-repeat="itemTravail in vm.listTravail" ng-click="vm.eltSelectionner(itemTravail)"  class="row-tab" >
...
</tr>

<md-tab ng-repeat="itemTabs in vm.tabs" >
    <content-page>
       <my-Comp1 onj="vm.object"></my-Comp1>
    </content-page>
</md-tab>


(function () {
    'use strict';

    var optionsCaractPropo = {
                        bindings: {
                            onj: '<'
                           //itemSelectionner: '=',
                           // myBinding: '@'
                            //functionBinding: '&'
                        },
                        controller: function($scope,$rootScope){
                                            var vm = this;

                                            console.log('caractPropoController>>>>>>> '+JSON.stringify(vm.onj));

                                            console.log('Outside');
                                            vm.$onInit = function () {
                                                    console.log('Inside');

                                                  }; 
                                              if(!$rootScope.$$phase) {
                                                  $scope.$digest();                              
                                               }

                                              },
                        controllerAs : 'vm',                                              
                        templateUrl: './contentComponents/prepare/views/myComp1.html'       
                 };

    angular.module('prepare')
           .component('myComp1', optionsCaractPropo); 



})();

家
...
...
(功能(){
"严格使用",;
var OptionScactPropo={
绑定:{
onj:“>>>”+JSON.stringify(vm.onj));
console.log(“外部”);
vm.$onInit=函数(){
console.log('Inside');
}; 
如果(!$rootScope.$$phase){
$scope.$digest();
}
},
controllerAs:'vm',
templateUrl:“./contentComponents/prepare/views/mycop1.html”
};
角度模块('prepare')
.组件('myComp1',选项CaractPropo);
})();

理想情况下,所有选项卡的内容都应为ng,即除非选项卡处于活动状态,否则应将其从DOM中取出。这应该也解决了这个问题,我已经为此创建了一个新的解决方案,但是我仍然有很多摘要循环,我不确定它是否合适。我在这里添加它,以便您或其他人可以尝试改进它。(我看不出
ng if有什么改进,这就是为什么它被注释的原因。)理想情况下,所有选项卡的内容都应该是ng if,也就是说,除非选项卡处于活动状态,否则它应该从DOM中删除。这应该也解决了这个问题,我已经为此创建了一个新的解决方案,但是我仍然有很多摘要循环,我不确定它是否合适。我在这里添加它,以便您或其他人可以尝试改进它。(我看不到
ng的改进,如果
,这就是它被评论的原因。)