javascript - 在 Angular 和 JSON 中填充正确的数据

标签 javascript json angularjs

我正在创建一个 Angular 模板,该模板将用于在 WordPress 微型网站上每页仅显示一组 Logo - 多个页面,每页一个 Logo 及其变体。 data.json 信息主要是变体的 url。我的难题是如何编写能够正确填充相关数据的 JavaScript。我想也许将页面标题与 logo_name (来自 json 文件)进行比较是设置 for 循环的好条件,但我不确定如何编写其余的 js,也不确定在controller.js 中的位置放置代码。这是一个由于某种原因无法正确链接的 fiddle ,js 显示了我想要的想法,但显然不起作用:https://jsfiddle.net/roob/qpzt5akp/2/ 这是 Controller :

            var brandApp = angular.module('brandApp', []);

            brandApp.controller('brandingContr', ['$scope', '$http', function($scope, $http) {
                $http.get('./js/data.json').success(function(data) {
                    $scope.logos = data;

                    var data=JSON.parse(data);
                    var logoName = data.logo_name[i];

                    var pgTtl=document.querySelector('title').innerHTML;
                    var dataLength = data.length;

                    for (var i=0; i<dataLength; i++)
                        {
                            if (logoName === pgTtl) 
                                {
                                    $("#wrappr").append();
                                }           
                        }


                });
            }]);        

下面是 JSON 数据。任何和所有帮助将不胜感激。

            [{ "logo_name" : "LA Times Core Logo",
                    "assets": {"display_logo" : "http://events.latimes.com/lat-branding/files/2015/08/2015-latlogo-300x37.png",
                                    "blk_jpg" : "http://events.latimes.com/lat-branding/files/2015/08/15LAT_Core_logo.jpg",
                                    "blk_png": "http://events.latimes.com/lat-branding/files/2015/08/15LAT_Core_logo.png",
                                    "blk_eps" : "http://events.latimes.com/lat-branding/files/2015/08/15LAT_Core_logo.eps",
                                    "wht_png" : "http://events.latimes.com/lat-branding/files/2015/08/15LAT_Core_logo_White.png",
                                    "wht_eps" : "http://events.latimes.com/lat-branding/files/2015/08/15LAT_Core_logo_White.eps"}
            },
            {   "logo_name" : "LA Times Media Group Logo",
                "assets": {"display_logo" : "http://events.latimes.com/lat-branding/wp-content/themes/lat-branding/img/15_LAT_MediaGroup_Logo.jpg",
                                    "blk_jpg" : "http://events.latimes.com/lat-branding/files/2015/08/15_LAT_MediaGroup_Logo1.jpg",
                                    "blk_png": "http://events.latimes.com/lat-branding/files/2015/08/15-LAT-Media-Group-Logo1.png",
                                    "blk_eps" : "http://events.latimes.com/lat-branding/files/2015/08/15_LAT_MediaGroup_Logo1.eps",
                                    "wht_png" : "http://events.latimes.com/lat-branding/files/2015/08/15-LAT-Media-Group-Logo-W1.png",
                                    "wht_eps" : "http://events.latimes.com/lat-branding/files/2015/08/15_LAT_MediaGroup_Logo_W1.eps"}
            }] 

最佳答案

这是一个更新的 fiddle ,其中包含您需要的代码:

http://jsfiddle.net/qpzt5akp/6/

其中有一些代码可以使其与 jsfiddle 一起使用,但它应该是显而易见的。主要事情:不要使用 ng-repeat。这里不需要。

这是您的 Controller :

angular.module('brandApp', [])
    .controller('brandingContr', ['$scope', '$http', function($scope, $http) {
        $http.get('./js/data.json').then(function(data) {
            var logos = JSON.parse(data);
            var pgTtl = window.title; // or document.querySelector('title').innerHTML;      
            var matchingLogos = logos.filter(function(it,ix,arr) {
                return it.logo_name === pgTtl;
            });
            if(matchingLogos && matchingLogos.length > 0) {
                $scope.logo = matchingLogos[0];
            } else {
                //handle case for no logo found here.
                //Maybe a default logo, this would continue Promise
                //Throwing an error here would reject the current Promise.
            }
            return $scope.logo;  //Continue Promise
        });
    }]);

关于javascript - 在 Angular 和 JSON 中填充正确的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32639428/

相关文章:

javascript - 如何在javascript中暂停和恢复函数执行

javascript - 使用具有递归函数的 promise

json - 从 Parse 导出密码

javascript - 如何在 Javascript 中的消息正文中添加按钮?

javascript - Uncaught Error : [$injector:modulerr]

javascript - 如何将网络音频振荡器从 (-1,1) 缩放到 (x,y)

php - 具有多个父项的 Javascript/PHP 家谱生成器

.net - 如何在 Controller 中为 Json 呈现部分 View

java - 从php中获取json数据并将其存储在java中的数组中

javascript - 在 Angular 中刷新状态而不刷新其主视图