我有设备服务和设备控制器。首先,无论何时调用控制器,我都会调用setter方法来设置一个布尔值。我想在调用logout函数时更改该值,该函数位于不同的服务中。 我的设备服务
define([], function () {
'use strict';
var DeviceService = [
"AuthService",
function (AuthService) {
var Device_Create = false;
return {
setUserCreatePermission :function () {
if(AuthService.checkForPermission('Device_Create')){
Device_Create = true;
}
},
getUserCreatePermission : function () {
return Device_Create
}
}
}];
return DeviceService;
})
我的设备控制器有一个init方法,用于调用设备服务中的setter方法。我设置了一个范围变量。如果设置,它将调用该方法,否则不会。
define([], function () {
'use strict';
var DeviceListCtrl = ["$rootScope", "$scope", "DeviceService",
function ($rootScope, $scope, DeviceService) {
//variables
$scope.deviceList_init = true;
$scope.Device_Create = false;
init();
if(DeviceService.getDeviceCreatePermission()){
$scope.Device_Create = true;
}
function init() {
if($scope.deviceList_init){
DeviceService.setDeviceCreatePermission();
}
$scope.deviceList_init = false;
}
}]
return DeviceListCtrl;
});
有人能帮助我吗? TIA。我是这个新手
答案 0 :(得分:0)
我不确定我是否理解你的问题,但似乎你试图控制两个不同的变量来做同样的事情 - 一个在控制器中,另一个在服务中。
如果要在不同的控制器之间使用变量,则应在服务/工厂中处理。
如果您想通知其他控制器变量已在某处更改,您可以使用$ rootScope。$ broadcast或$ scope。$ broadcast,具体取决于它是否在您所需的范围内。