我怎样才能得到这个功能:
$rootScope.$watch(function () {
return $mdMedia('md');
}, function watchCallback(newValue, oldValue) {
$scope.detectScreen = $mdMedia('max-width: 1280px');
})
目前它位于我的 Controller 中,成为一个服务/工厂,因此我可以在多个 Controller 中使用它。
.factory('MyFactory', [
'$rootScope',
'$mdMedia',
function ($rootScope, $mdMedia) {
return {
detectScreen: function (param) {
***///get the function to work from here///***
}
}
}
])
最佳答案
在没有 watch 的情况下将功能放入工厂:
app.factory('MyFactory', ['$mdMedia',
function ($mdMedia) {
return {
detectScreen: function () {
return $mdMedia('max-width: 1280px');
};
}
}
]);
在 Controller 中,使用$doCheck
Life-Cycle Hook使范围变量保持最新:
app.controller("myController", function(myFactory, $scope) {
this.$doCheck = function () {
$scope.detectScreen = myFactory.detectScreen();
};
});
关于javascript - 来自服务/工厂的 $mdMedia Angular $watch 屏幕尺寸,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41531214/