我有一个页面有两个部分,两个部分在某个地方相互依赖。所以我的问题是我是否需要为此创建 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/