如何访问图像取决于通知类型

How do I access images depends on notification type

本文关键字:图像 取决于 通知 类型 访问 何访问      更新时间:2023-11-03

我在后端json文件中存储了notificationType,在notiffacation控制器中,我存储了相同的notificationType,并带有名称和图像(它应该显示哪些图像取决于通知类型)以供比较。现在我想访问的图像取决于通知类型。我试过这样做,但它只拍摄了它正在拍摄的第0个位置的图像。

我知道我的错误是什么,但我不知道该怎么做,有人能帮我吗。。。我的代码是.

控制器.js

$scope.typeofnotification =[{name:'offer', imges: './resources/remote.png'},
                {name:'discount', imges:'./resources/mic.png'},
                {name:'upgrades', imges:'./resources/play-icon.png'}];

/*var len = $scope.typeofnotification.length*/
$scope.setNotificationImage = function(){
    var notificationImage;
    for (var i = 0; i < $scope.typeofnotification.length; i++) 
    {
        if($scope.notificationData[i].notificationType == $scope.typeofnotification[i].name)
        {
           return notificationImage = $scope.typeofnotification[i].imges;
        }
    }
};

notificationData[i].notification从后端键入此行

one.HTML

<div class="notifications" ng-repeat="item in notificationData">            
<img id="notificationImages" yo-src="setNotificationImage()"/>  
<div id="notificationdata" yo-attr="{html: 'item.desc'}"></div>                 
<div id="notificationdate" yo-attr="{html: 'item.date'}"></div>                 
</div>

在ng重复指令中,通知数据来自后端我得到的输出是,我得到的所有通知只有第一个图像和位置图像。但我想要的图像取决于通知类型。至于上面的代码,如果通知类型是add_content,它需要显示remote.png,如果类型是"discount",它需要显mic.png,最后如果类型是升级,它需要展示play-icon.png

请检查下面的图片。

在此处输入图像描述

在您的解决方案中,您只会得到相同的值,因为当满足第一个条件时,返回的是图像url,而不是您的项目图像url。

您需要使用重复的item而不是$scope.notificationData进行检查,因此在调用setNotificationImage函数时需要传递item,并使用此item.notificationType === $scope.typeofnotification[i].name 进行检查

类似:

HTML:

<div class="notifications" ng-repeat="item in notificationData">            
    <img id="notificationImages" yo-src="setNotificationImage(item)"/>  //pass item 
    <div id="notificationdata" yo-attr="{html: 'item.desc'}"></div>                 
    <div id="notificationdate" yo-attr="{html: 'item.date'}"></div>                 
</div>

控制器:

$scope.setNotificationImage = function(item){
    for (var i = 0; i < $scope.typeofnotification.length; i++) 
    {
        if(item.notificationType === $scope.typeofnotification[i].name)
        {
           return  $scope.typeofnotification[i].imges;
        }
    }
};