AngularJSのカスタムディレクティブを使い、resizeイベントが発火した場合、scope.$broadcast(“resize”)を呼び出し、コントローラに通知します。
■JavaScript
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
var app = ons.bootstrap("myApp", ["onsen"]); app.directive("resize", function($window) { return { restrict: "EA", link: function(scope) { angular.element($window).on("resize", function(e) { scope.$broadcast("resize"); }); } }; }); app.controller("testController", function($scope) { // 回転検知 $scope.$on("resize", function(e) { //ここに処理を記述する }); }); |
■HTML
1 2 3 4 5 |
<body ng-controller="testController"> <div resize> <!-- 省略 --> </div> </body> |