Angularjs变量值未更新

时间:2014-12-14 06:21:20

标签: javascript jquery angularjs twitter-bootstrap angularjs-scope

我正在使用带引导模式的角度,我有一个json存储在控制器中的范围变量产品中,如下所示

controllers.productController = function($scope) {
$scope.products = {"meta": {"total_count": 3}, "objects": [{ "id": 3, "image": "/media/products/1/Product007_image.JPEG", "image2": "/media/products/1/Product007_image2.JPEG",}, {"id": 4, "image": "/media/products/1/Product009_image.JPEG", "image2": "/media/products/1/Product009_image2.JPEG"},{"id": 13, "image": null, "image2": null}]}
$scope.fetchModal = function(index) {
   $scope.activeProd = index;
   $('#product_desc').modal();
}
}

的index.html

    <div ng-controller="productController">
<div class="product-list">
    <span ng-repeat="product in products.objects" ng-click="fetchModal(index)" >{{ product.id }}</span>
    </div>
    <div id="product_desc">
    <img ng-src="{{products.objects[activeProd].image }}" />
    {{ products.objects[activeProd].id }}
    </div>
    </div>

它工作得很好,问题是,如果我点击产品列表中有产品列表的产品,它会用图像渲染模态,然后点击产品,其图像值为null,即没有图像,在其模型中,产品形象仍然存在而我什么也得不到。我希望我明白我的观点

我观察到ng-src正在改变并指定为null但是src属性没有改变

1 个答案:

答案 0 :(得分:1)

我认为您的问题是,当您将ng-src更改为null时,旧值将保留在图像源中。

这是正确的角度行为。您可以在此主题中找到详细信息:

https://stackoverflow.com/a/22094392/1649235

如果你通过这个线程,你也会找到一个解决方法,即不要把你的图像路径设为null,它应该是空的,把它等于'//:0'。