javascript - 同一页面的两个部分使用 2 个 Controller 是否更好

标签 javascript jquery angularjs angularjs-scope

我有一个页面有两个部分,两个部分在某个地方相互依赖。所以我的问题是我是否需要为此创建 2 个不同的 Controller 。(如果是,那么我将如何在它们之间共享 $scope)或者只为两者使用一个 Controller 。

最佳答案

你可以使用其中任何一个。

一个 Controller ,其范围可用于页面的两个部分。

两个 Controller 并使用一个服务。您将需要 checkin .service 和 .factory 以在 Controller 之间共享数据。服务示例:

.factory('storageService', function () {
    var vars = [];
    var storageService = {};

    storageService.set = function (key, value) {
        vars[key] = value;
    };

    storageService.get = function (key) {
        return vars[key];
    };

    return storageService;
})

还有一些指令,您可以将您想要的任何内容从 $scope 传递到指令中。在指令的 html 中,您将设置一个名为“scope”的属性,并向其传递一些在范围中定义的变量,例如...

<some-directive scope="data"></some-directive>

.directive('someDirective', ['$rootScope', 'storageService', function ($rootScope, storageService) {
    return {
        restrict   : 'AE',
        scope      : {
            scope: '=' 
        },
        replace    : true,
        templateUrl: 'some/path',
        link       : function ($scope, element, attr) {
            $scope.setResetValue = function(value){
                storageService.set('resetValue', value);
            }
        }

    };
}])

关于javascript - 同一页面的两个部分使用 2 个 Controller 是否更好,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39875096/

相关文章:

javascript - 谷歌地图 - 将 InfoWindows 附加到数组中的多边形

javascript - IE7 中的 jQuery Lightbox 动画问题

javascript - 只显示 ng-repeat 的第一个元素

javascript - Angularjs:修复范围,以便指令可以重复

javascript - 逐像素碰撞检测弹球

javascript - 在导航栏中创建 Logo 作为主页按钮

javascript - javascript中数组方法和join函数组合输出无法理解

php - 比较来自 MySql 和 Datepicker 的日期

javascript - 带有居中文本的div的滑动动画

javascript - ng-click 图像以选中单选框