javascript - div 中的图像动态填充

标签 javascript html angularjs

我需要通过迭代对象(ng-repeat)动态填充图像

请找到下面的代码

<div class="row graph-img">
    <div class="col-sm-6" ng-repeat="option in subserviceObject.serviceRequest">
    <img ng-init="retreiveGraph(service,subservice,$index)" id="imgframe{{$index}}" src="">
    </div>
</div>

我的 Controller 代码在这里

$scope.retreiveGraph = function(serviceName,subservice,index) {
    $scope.service=serviceName;
    $scope.resetGrapghParam(serviceName,subservice,num);
    $scope.displayServiceDetails(serviceName);
    imgsrc='./service/getServiceDetails/'+$scope.service+'/'+$scope.initGrapghServiceName;
    document.getElementById("imgframe"+index).setAttribute("src", imgsrc);
};

我在控制台中收到错误,例如“无法读取 null 的属性‘setAttribute’”。

如果这是解决此解决方案的错误方法,请建议我解决此问题。

请在渲染后找到我的最终 HTML 元素

<div class="row graph-img">
    <!-- ngRepeat: option in subserviceObject.serviceRequest --><div class="col-sm-6 ng-scope" ng-repeat="option in subserviceObject.serviceRequest">
    <img ng-init="retreiveGraph(service,subservice,$index)" id="imgframe0" src="">
</div><!-- end ngRepeat: option in subserviceObject.serviceRequest -->
<div class="col-sm-6 ng-scope" ng-repeat="option in subserviceObject.serviceRequest">
    <img ng-init="retreiveGraph(service,subservice,$index)" id="imgframe1" src="">
</div><!-- end ngRepeat: option in subserviceObject.serviceRequest --><div class="col-sm-6 ng-scope" ng-repeat="option in subserviceObject.serviceRequest">
    <img ng-init="retreiveGraph(service,subservice,$index)" id="imgframe2" src="">
</div><!-- end ngRepeat: option in subserviceObject.serviceRequest -->
</div>

id 填充正确,但当我尝试 setAttribute 时,它​​返回 null

提前致谢

最佳答案

Angular 有一个指令来构造 img 标签的 src,使用它:

<div class="row graph-img">
    <div class="col-sm-6" ng-repeat="option in subserviceObject.serviceRequest">
    <img ng-src="retreiveGraph(service,subservice,$index)">
    </div>
</div>

然后在你的 Controller 中:

$scope.retreiveGraph = function(serviceName, subservice, index) {
    $scope.service=serviceName;
    $scope.resetGrapghParam(serviceName,subservice,num);
    $scope.displayServiceDetails(serviceName);
    return './service/getServiceDetails/' + $scope.service + '/' + $scope.initGrapghServiceName;
};

虽然我认为你误解了 Angular 的一些概念,比如 $scope 等。我建议您在继续之前阅读一些文档...

您不需要在每次迭代时将参数传递到函数中,如果您将它们放在 $scope 对象上,您可以直接从那里获取它们。

关于javascript - div 中的图像动态填充,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40995343/

相关文章:

javascript - 给灰度图像着色

javascript - 通过 jQuery 或其他使用图标实现图形选择列表

javascript - 使用javascript子字符串指定字符长度

angularjs - $setPristine 不是函数

android - 在 Ionic/Angular 中显示从 API 下载的 PDF

javascript - 可以在箭头函数内使用 for 循环简写吗?

javascript - 哪些技术可以改善 Threejs 模型的外观

mysql - 我为 HTML 内容使用什么结构类型 (MySQL)

javascript - 使用 javascript 隐藏/显示元素

javascript - 如何正确地与另一个 Controller 管理的 View 交互?