javascript - angularjs, 将太多变量和函数赋值到$scope是否会影响效率?
ringa_lee
ringa_lee 2017-04-11 10:38:42
[JavaScript讨论组]

在使用angularjs开发的时候,我将一些并不需要与页面交互的函数和变量赋值到$scope,是否会导致效率更低。
比如

$scope.test1 = function() {
  ....
};
$scope.test2 = function() {
  ....
};


//test1和test2并没有在html页面中使用到而是在controller使用
if($scope.test1() && $scope.test2()) {
    ....
}

改成

var test1 = function() {
  ....
};
var test2 = function() {
  ....
};

if(test1() && test2()) {
    ....
}

是否更佳合适。
PS: $scope是怎样的一个作用机制,使用的时候应该注意些什么?

ringa_lee
ringa_lee

ringa_lee

全部回复(4)
大家讲道理

$scope是数据展示和各种事件的载体。与展示、交互行为无关的数据和方法最好不要挂载到$scope上,保持$scope的纯粹。

处理的方法声明一个函数即可,如

var test1 = function() {
  ....
};
var test2 = function() {
  ....
};

if(test1() && test2()) {
    ....
}

如果多个地方使用到了test1和test2,根据功能将他们添加到相应的service即可

伊谢尔伦

一个$scope对应一个controller,$scope里面放这个controller要用到的变量和函数,与展示、交互无关的变量和函数不要放在$scope上,公用的变量放在$rootScope里,公用的函数放service里。
改成

app.service('myService', function() {       
    this.test1 = function() {
     ....
    };
    this.test2 = function() {
     ....
    };
});

用的时候

app.controller('myCtrl', function($scope, myService) {
    $scope.hex = myService.test1();
});
PHP中文网

最好只把与view相关的事件和数据存放到$scope上,其他的你可以声明内部函数或者变量。

function isDemo() {
    // some code
    return true;
}
$scope.clickEve = function() {
    if(isDemo()) {
        $scope.youdata = selfChange;
    }
}
PHP中文网

建议你看看这个 angular优化建议

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号