angular ng-src不刷新图像

时间:2015-01-06 08:50:28

标签: javascript angularjs angularjs-scope angularjs-controller angularjs-compile

我正在执行从图像列表中选择图像的功能。我从每个按钮都有一个“选择”按钮,并按下按钮调用selectImage方法。

AngularApp:

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']);

观点:

<div id="blog-images" ng-controller="BlogImageController">
<div ng-show="selectedImageId == null" style="height:50px; margin-bottom:5px;">
    <div class="alert alert-info">
        <span class="glyphicon glyphicon-info-sign"></span>
        The image isn't selected!
    </div>
</div>
<div class="blog-selected-image" ng-hide="selectedImageUrl == ''">
    <b>The selected image: <span ng-bind="selectedImageUrl"></span>   </b><br/>
    <img ng-src="{{selectedImageUrl}}" class="img-thumbnail" style="height:200px">
</div>

... PJAX PART以网格和分离方式进入这里

和每个项目的ng-click =“selectImage(39)”按钮

PJAX PART ENDS

毕竟在javascript中:

var ngRefresh = function() {
var scope = angular.element(document.body).scope();
var compile = angular.element(document.body).injector().get('$compile');
compile($(document.body).contents())(scope);
scope.$apply();
}

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

在pjax调用后我有一些奇怪的行为。单击选择按钮时,将调用selectImage方法。它更改了selectedIMageUrl,每次单击“选择”按钮时,我都可以看到不同的URL。但是图像(指定的ng-src)不会改变。

在pjax调用之前,图像更改工作得很好。

PS:我明白,做jsFiddle片段会更好,但我会遇到服务器端的问题。

0 个答案:

没有答案