加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

angularjs – 用于在路由之间保持$scope的模式

发布时间:2020-12-17 06:46:33 所属栏目:安全 来源:网络整理
导读:我发现我几乎总是希望在路由更改中保留范围,因此,我发现我几乎停止使用控制器,除了将所有内容转发到服务之外.我的控制器最终看起来像这样: app.factory('CtrlAService',function() { return { scope: {},};});function CtrlA($scope,CtrlAService) { $scope
我发现我几乎总是希望在路由更改中保留范围,因此,我发现我几乎停止使用控制器,除了将所有内容转发到服务之外.我的控制器最终看起来像这样:

app.factory('CtrlAService',function() {
    return {
        scope: {},};
});

function CtrlA($scope,CtrlAService) {
    $scope.data = CtrlAService.scope;

}

也就是说,我的控制器所做的就是将变量绑定到服务变量,而不是绑定一个或两个函数 – 我不使用控制器来做任何事情.

这种方法是否正确,如果没有,有什么更好的方法来实现这一目标?

我在这里做了一个示例应用程序:http://jsfiddle.net/Wc22k/1/

解决方法

我认为如果你有一个数据量很大的应用程序,这通常是正确的.您需要的视图功能越多,您在控制器中的结果就越多.例如,我在应用程序中使用google-maps和ng-grid非常广泛,因此我的所有控制器都包含控制器内部的所有配置(有时用于标签显示等功能).此外,我发现并且一直在修改的谷歌地图代码(MIT Licensed)有一个相当复杂的JavaScript对象,它包含谷歌地图代码和指令的控制器.

如此简短的版本,是的,在数据??繁重的应用程序中,大多数代码最终都在服务中,控制器只是将视图连接到服务中的某些数据,在其他情况下没有.我看到你对持久化范围的看法,但我认为最好留下控制器中视图所需的所有逻辑(我将其视为视图模型而不是服务中的数据模型).它只是清楚地分离了正在发生的事情和影响事物的因素.例如,如果我需要在某些视图之间保留一段数据,我将其存储在服务中(一直在考虑使用“值”,因为它在语义和功能上更合适但只是没有花时间去做这个因子).

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读