2015-01-02 5 views
0

페이지에서 AngularJs와 Pjax를 모두 사용하고 있습니다.AngularJs는 pjax 이후 작동을 멈 춥니 다.

내 페이지의 일부가 Pjax로 다시로드 된 후 Angularjs가 작동을 멈 춥니 다.

단순한 {{2 + 2}}는 pjax로 다시로드 된 부분을 제외한 모든 부분에서 작동합니다.

나는 문제가 $ compile을 사용하고 있음을 발견했다.

다른 코드 스 니펫을 시도했지만 그 중 아무 것도 나를 위해 일하지 않았습니다.

어느 쪽이 하나

angular.element(document).ready(function() { 
    angular.bootstrap(document); 
    }); 

도이

// outside of angular... 
    var ngRefresh = function() { 
    var scope = angular.element("body").scope(); 
    var compile = angular.element("body").injector().get('$compile'); 

    compile($("body").contents())(scope); 
    scope.$apply(); 
} 

// PJAX 
$('#page').on('pjax:success', function(e){ 
    ngRefresh(); 
}); 

코드 조각은 날 위해 일했습니다. 아무도 작동하는 해결책을 알고 있습니까?

UPD : PSL이 $ ("body")를 $ (document.body)로 변경하면 코드가 작동하기 시작합니다. 하지만 이제는 모든 것이 처음부터 초기화되고 모든 pjax 호출 후에 내 데이터 (예제에서 선택한 이미지)가 느슨합니다. 어떻게 이것을 피할 수 있습니까?

이 내 JS 파일입니다

app = angular.module("BlogImageApp", []); 

app.controller("BlogImageController", function($http, $scope){ 

$scope.selectedImageId = null; 
$scope.selectedImageUrl = ""; 

$scope.selectImage = function(image_id) { 
    $scope.selectedImageId = image_id; 
    var params = 'id='+image_id; 
    $http.get('/blog/image/get-url-by-id?'+params).success(function(data){ 
     $scope.selectedImageUrl = data; 
    }); 

} 
}); 

// registers the BlogImageApp in the view 

angular.bootstrap(document, ['BlogImageApp']); 
+1

콘솔에 오류가 있습니까? – tymeJV

+0

__ ^^ __ 그리고 너는 너의 관점에서 ng-app을 가지고 있지 않니? – PSL

+0

@tymeJV 예, 약간의 오류가 있습니다. 그러나 나만큼 유익하지 않습니다. 오류 : [jqLite : nosel] _HTTP : //errors.angularjs.org/1.2.27/jqLite/nosel 다음 코드 전체 텍스트 장소에 대한 포인터 : 오류 : [jqLite : nosel] HTTP : //errors.angularjs.org/1.2.27/jqLite/nosel \t ... gify (인수 [c]) : 인수 [c]); 반환 오류 (a)}} 함수 Sa (b) { 경우 (NULL == B || 응 (... \t angular.min.js (6 호선, COL 449) –

답변

관련 문제