AngularJS - JQuery Droppable

Я сталкиваюсь с проблемой, реализующей простой jQuery, сбрасываемый в приложении AngularJS.

По какой-то причине код работает на отдельной странице, которую я настроил на Fiddle: http://jsfiddle.net/65FMq/3/

Однако по какой-то причине, когда я добавляю тот же код в myApp, он не работает. По сути, как только вы запустите приложение (index.html), вы окажетесь на домашней странице, которая включает в себя app.js, другие контроллеры, css и т. Д.

Затем, когда вы щелкнете по пункту меню "Фото", я покажу состояние "фотографии" (это отдельный HTML-файл). Оттуда пользователь может затем выбрать одну из фотографий, которые он / она хотел бы приобрести, и когда он нажимает кнопку "Купить" с помощью ng-клика "buyPhoto(photos)", я скрываю div, показывающий доступные фотографии, и показываю Div с более подробной информацией об этом фото.

Там, помимо информации на фотографии, я также показываю сетку со всеми возможными размерами, в которых пользователь может заказать фотографию, и ему нужно будет перетащить размер, который он хотел бы, на панель заказа (область раскрытия)). Однако по какой-то причине я не получаю эффект перетаскивания, даже если загружаются необходимые файлы jquery css/js и миниатюра фотографии (которая будет ячейкой в ​​скрипте выше) установлена ​​на перетаскивание.

Вот мой app.js:

angular
.module('app', [
    'ui.router'
])
.config(['$urlRouterProvider', '$stateProvider', function($urlRouterProvider, $stateProvider) {
    $urlRouterProvider.otherwise('/');

    $stateProvider
        .state('home', {
            url: '/',
            templateUrl: 'partials/home.html'
        })
        .state('photos', {
            url: '/photos',
            templateUrl: 'partials/photos.html',
            controller:  'photosCtrl',
            resolve: { photos: ['$http', function($http){
                        return $http.get('api/photos.json').then(function(response){
                            return response.data;
                        });
                    }]
            }                       
        })  

}]);

Вот мой photosCtrl:

angular.module('app')
 .controller('photosCtrl', ['$scope', '$http', 'photos', function($scope, $http, photos) {

$scope.photos       = photos;

$scope.buyPhoto = function(photos) {                    
    document.getElementById('photos_available').style.display = 'none'; 
    document.getElementById('photo_buy').style.display = 'block';   

    $scope.photo_name   = photos.photo_name;
    $scope.image        = photos.image;
    $scope.description  = photos.description;
    $scope.date_taken   = photos.date_taken;
    $scope.price        = photos.price; 
    $scope.rows         = 3;
    $scope.cells        = 3;
    $scope.getNumber = function (num) {
           return new Array(num);
    }       


}])
.filter('character',function(){
return function(input){
    return String.fromCharCode(64 + parseInt(input,10));
};
});


$(document).ready(function () {
$("#cell-container ul.rows li.draggable").draggable({
    appendTo: "body",
    helper: "clone"
});
$("#droppable ol").droppable({
    activeClass: "ui-state-default",
    hoverClass: "ui-state-hover",
    accept: ":not(.ui-sortable-helper)",
    drop: function (event, ui) {
        $(this).find(".placeholder").remove();
        $("<li></li>").text(ui.draggable.text()).appendTo(this);
    }
});
});

HTML (фрагмент) в частичном HTML-файле Photos (который содержит информацию о том, где происходит угловое повторение, чтобы сгенерировать требуемые ячейки и строки и показать, что строки получают перетаскиваемый класс):

    <div class="cell-selection-container" id="cell-container">
        <ul class="rows">
            <li class="row" ng-repeat="i in getNumber(rows) track by $index">
                <ul class="cells">
                    <li class="cell draggable" ng-repeat="i in getNumber(cells) track by $index" id="{{$index+1}}" id="{{$parent.$index+1|character}}{{$index+1}}">
                        <div class="cell-number">{{$parent.$index+1|character}}{{$index+1}}</div>
                    </li>
                    <div class="clear"></div>
                </ul>
            </li>
        </ul>
    </div>
<br>
<br>
<div id="droppable">
    <ol>
        <li class="placeholder">drop stuff here</li>
    </ol>
</div>

0 ответов

Другие вопросы по тегам