我们有一个漫画阅读网站,我们正在尝试使用AngularJS Our Current Website with PHP对其进行重建。我们取得了很大进展,但仍停留在这里。在主页上,火影忍者按钮“ 649”与当前的一样。当我们单击此按钮时,它必须加载Naruto Chapter 649的图像。但是它加载空白页。这是我们的代码:

我们的JSON:

[
{
"seri": "Bleach",
"random": [
    {
        "klasor": "787",
        "yol": [
            "path/to/1.jpg",
            "path/to/2.jpg",
            "path/to/3.jpg"
        ]
    },
    {
        "klasor": "788",
        "yol": [
            "path/to/1.jpg",
            "path/to/2.jpg",
            "path/to/3.jpg"
        ]
    }
]
},
{
"seri": "Naruto",
"random": [
    {
        "klasor": "332",
        "yol": [
            "path/to/1.jpg",
            "path/to/2.jpg",
            "path/to/3.jpg"
        ]
    },
    {
        "klasor": "333",
        "yol": [
            "path/to/1.jpg",
            "path/to/2.jpg",
            "path/to/3.jpg"
        ]
    }
]
}
]


相关的App.js部分:

$stateProvider
.state('oku', {
url: "/oku/:name/:id",
views: {
"viewC": { templateUrl: "oku.html",
            controller: "nbgCtrl",},
},
})
.factory('MangaService', function($http) {
var mService = {};
var url = '/uzak/remote1.php?callback=JSON_CALLBACK';
mService.allMangas = $http.get(url);
// retrieve your full JSON into mService.allMangas here
// you could additionally track states like loading/error

mService.getMangaSeri = function(name) {
    return mService.allMangas.filter(function (el) {
        return el.seri == name;
    })[0];
}

mService.getMangaSeriKlasor = function(name, num) {
    var seri = mService.getMangaSeri(name);
    return seri.random.filter(function (el) {
        return el.klasor == num;
    })[0];
}

return mService;
})

.controller('nbgCtrl', function($scope, MangaService) {
MangaService.allMangas.success(function(verHemen){
   $scope.bilgiler = verHemen;
})
})


Naruto 649按钮,链接类似于“ oku / Naruto / 649”,加载oku.html,“ manga”来自另一个JSON。

<a ui-sref="oku({id:manga.last, name:manga.name})" class="waves-effect waves-light btn">{{manga.last}}</a>


相关的oku.html部分,oku.html是显示图像的位置:

<div class="col s8 offset-s2" ng-repeat="bilgi in bilgiler.random">
<img ng-repeat="mypath in bilgi.yol" ng-src="http://localhost/{{mypath}}">
</div>


因此,我们的问题就是我们如何使用angularJS显示图像?

最佳答案

看起来{{bilgi.yol}}实际上是一个数组,并且您正在ng-src属性中使用它。

不确定要实现的目标,但可能是这样的:

<div ng-repeat="bilgi in bilgiler.random">
    <img ng-repeat="mypath in bilgi.yol" ng-src="http://localhost/{{mypath}}">
</div>


那将显示在相应的bilgi.yol数组中引用的所有图像。

您可能要做的是先通过“ seri”过滤JSON,然后通过“ klasor”从结果中过滤“ random”,然后有了要显示的漫画章节。假设您将其存储在myManga中,则只需执行以下操作:

<img ng-repeat="myPath in myManga.yol" ng-src="http://localhost/{{myPath}}">


至于使用完整的JSON,虽然浪费带宽,但是您可以在服务中获取一次,并按以下方式使用它:

.factory('MangaService', function($http) {
    var mService = {};
    mService.allMangas = [];
    // retrieve your full JSON into mService.allMangas here
    // you could additionally track states like loading/error

    mService.getMangaSeri = function(name) {
        return mService.allMangas.filter(function (el) {
            return el.seri == name;
        })[0];
    }

    mService.getMangaSeriKlasor = function(name, num) {
        var seri = mService.getMangaSeri(name);
        return seri.random.filter(function (el) {
            return el.klasor == num;
        })[0];
    }

    return mService;
})


您可以在控制器中使用此服务,并通过使用查找功能来请求特定的漫画系列和章节。

对于它的价值,我个人会使用一个更特定的php API,该API允许进行更细粒度的请求。

关于javascript - AngularJS漫画阅读网站,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32956452/

10-11 14:41