jjery绑定方法中的angularjs $ scope变量

时间:2014-07-10 10:55:57

标签: javascript jquery angularjs angular-ui-bootstrap

我一直在angularjs应用程序中使用Fullcalender指令。正如我在文档中一样,Fullcalender jquery插件中存在双击句柄。

这是ref:http://code.google.com/p/fullcalendar/issues/detail?id=375#makechanges

有一个建议双击是我们应该使用eventRedner事件处理程序来注册double事件。正如我所做并取得成功但问题是我无法在bind方法中调用$ modal box。

这是代码。

$scope.eventPopup = function(event,element){
    console.log($scope);

    element.bind('dblclick', function(e) {
        console.log("double click" );
        var modalInstance = $modal.open({
            templateUrl: Drupal.settings.angularjsApp.basePath + '/ng_node/calender/popup',
            controller: ModalInstanceCtrl,
            scope: $scope
        });
    });
};

日历配置:

$scope.uiConfig = {
    calendar:{
        height: 450,
        editable: true,
        eventStartEditable: false,
        header:{
            left: 'prev,next today',
            center: 'title',
            right: 'month,basicWeek,basicDay'
        },
        //eventClick: $scope.alertOnEventClick,
        eventDrop: $scope.alertOnDrop,
        eventResize: $scope.alertOnResize,
        eventRender: $scope.eventPopup

    }
};

任何人都可以建议我该怎么做?

由于

1 个答案:

答案 0 :(得分:2)

我已经通过在AngularJs中使用$ apply()方法解决了这个问题。

element.bind('dblclick',function(e) {

        $scope.$apply(function(){
            console.log(event_date._d);
            var modalInstance = $modal.open({
                templateUrl: Drupal.settings.angularjsApp.basePath + '/ng_node/calender/popup',
                controller: ModalInstanceCtrl,
                resolve:{
                    day: function (){
                        return event_date._d;
                    }
                },
                size: 'lg',
                scope: $scope
            });
        });

    });

$ apply()函数用于jQuery绑定。

由于