2015-11-10 2 views
2

У меня проблема. Я пытаюсь добавить некоторые свойства объекта $ scope в обработчик события jQuery. Вот мой код:

.controller('dashboard', ['$scope', function($scope){ 
    $(window).resize(function(){ 
     $scope.device = ($(document).width() > 768) ? 'desktop' : 'mobile'; 
    }); 
}]); 

Но, похоже, переменная устройство не добавляет на $ рамки контроллера панели. Что случилось с моим кодом? спасибо: D

ответ

0

вы должны использовать angularjs JQ облегченной обертку, а также инъекционные $ окна и $ документ и использовать их соответствующим образом,

.controller('dashboard', ['$scope','$window','$document', function($scope){ 
    var windowjQ = angular.element($window), 
     documentjQ = angular.element($document); 

    windowjQ.bind('resize',function(){ 
     $scope.device = (documentjQ.width() > 768) ? 'desktop' : 'mobile'; 
     $scope.$apply() // to kick the digest cycle; 
    }); 
}]); 

Примечание: Попробуйте использовать пользовательские директивы для любого йот Сопутствующие (они предназначенные для такого рода :))