1
在角設定變量,我留意窗口的大小和在控制器上改變「裝置」變量如果寡婦寬度超過某一閾值:窗口調整大小控制器不工作
var myModule = angular.module("MyApp", [])
.controller('MyController', function(UseHttp){
// store reference of "this"
var self = this;
function setDevice(){
var wWidth = $(window).width();
var theDevice;
if (wWidth <= 991 && wWidth > 767) {
theDevice = "narrow desktop";
} else if (wWidth <= 767 && wWidth > 620) {
theDevice = "iPad";
} else if (wWidth <= 620 && wWidth > 500) {
theDevice = "largeMobile";
} else if (wWidth <= 500 && wWidth > 320) {
theDevice = "mediumMobile";
} else if (wWidth <= 320) {
theDevice = "smallMobile";
} else {
theDevice = "desktop";
}
self.device = theDevice;
}
//self.device gets set on window resize
$(window).resize(function(){
setDevice();
$scope.$apply(); //but where do I store the var $scope?
});
//self.device gets set right away
setDevice();
}).service('UseHttp', function($http) {....
但對於某種原因,當我改變窗口大小以達到一個新的閾值視圖上的這個p標籤不更新(但它確實表明了最初的「設備」)
<article ng-controller="MyController as myCtrl" class="content-wrapper">
<p>{{myCtrl.device}}</p>
我建議做$從setDevice()調用內申請(),因爲這實際上是範圍突變哪裏發生。 –
@YonaAppletree - 這樣做的問題是,當摘要已經在進行時,最初調用setDevice()。 – jbrown
這個唯一的問題 - 在窗口調整大小我得到錯誤:'找不到變量:$ scope'。我更新了我的代碼以顯示我的完整控制器。我在哪裏存儲$ scope變量? – NewToJS