javascript - 如何结合使用 anchor 标记和routeParams通过ID获取JSON

标签 javascript html angularjs json

我是 Angular 的新手,并且一直在尽我所能来理解它。我有个问题。 我想使用 anchor 标记将我带到 json 文件的特定 id。我只是不知道如何 <div ng-repeat="portfolio in portfolios" class=" portfolio-item col-xs-12 col-sm-6 col-md-3 shuffle-item filtered animated" style="margin:0; padding:0;" id="grid"> <div class="portfolio"> <figure class="effect-julia"> <img ng-src="{{portfolio.image}}"> <figcaption> <div class="socials"> <a href="#/portfolio/{{detail.detailid}}"><i class="fa fa-share animated"></i></a> </div> <div class="scoial-heading"> <p> {{portfolio.name}} </p> <strong>{{portfolio.description}}</strong> </div> </figcaption> </figure> </div> <!-- /.portfolio --> </div> 这是我的代码:

angular.module('app', [
'ngRoute',
'app.controllers',
'angular-scroll-animate',
'ui.bootstrap',
'ngMessages'
]).config(['$routeProvider', function($routeProvider) {
$routeProvider
    .when('/', {
        templateUrl: 'views/home.html',
        controller: 'homeCtrl'

    })
    .when('/about', {
        templateUrl: 'views/about.html',
        controller: 'aboutctrl'
    })
    .when('/services', {
        templateUrl: 'views/services.html',
        controller: 'servicesCtrl'

    }).
when('/portfolio', {
        templateUrl: 'views/portfolio.html',
        controller: 'portfolioCtrl'
    })
    .when('/portfolio/:id', {
        templateUrl: 'views/portfolio-detail.html',
        controller: 'portfolioController'
    }).
when('/blog', {
    templateUrl: 'views/blog.html',
    controller: 'blogCtrl'
}).
when('/project', {
    templateUrl: 'views/process_form.html',
    controller: 'projectCtrl'
}).otherwise({
    redirectTo: '/'
});
}]);

angular.module('app.controllers', [])
.controller('homeCtrl', ['$scope', '$rootScope','$http', function($scope, $rootScope,$http) {
    $rootScope.Title = "Home";
    $scope.animateElementIn = function($el) {
        $el.addClass('animated fadeInRight');
    };

    $scope.animateElementOut = function($el) {

    };
    $http.get('data/portfolios.json').success(function(data){
        $scope.portfolios= data;
    });
}])
.controller('portfolioCtrl', ['$scope', '$rootScope', function($scope, $rootScope) {
    $rootScope.Title = "Portfolio";
    $scope.myInterval = 5000;
    $scope.noWrapSlides = false;
    var slides = $scope.slides = [{
        image: 'http://placehold.it/750x500'
    }, {
        image: 'http://placehold.it/750x500'
    }, {
        image: 'http://placehold.it/750x500'
    }];

}])
.controller('servicesCtrl', ['$rootScope', function($rootScope) {
    $rootScope.Title = "Services";
}])
.controller('aboutctrl', ['$rootScope', function($rootScope) {
    $rootScope.Title = "About";
}])
.controller('blogCtrl', ['$rootScope', function($rootScope) {
    $rootScope.Title = "Blog";
}])
.controller('projectCtrl', ['$rootScope', function($rootScope) {
    $rootScope.Title = "Project";
}])
.controller('portfolioController', ['$scope', '$http', '$routeParams', function($scope, $http, $routeParams){
    $http.get('data/detail.json').success(function(data){
        $scope.detail = data[$routeParams.id];
    });
}]);

我的 json 文件:

[
 {
        "image": "img/portfolio01.jpg",
        "name": "SleepShareStay",
        "description": "Short-Term Listing Online Platform",
        "id": 0


    }, {
        "image": "img/portfolio02.jpg",
        "name": "Boyd Photography",
        "description": "Professional Photography Studio",
        "id": 1

    }, {
        "image": "img/portfolio03.jpg",
        "name": "Arusha Flour Supply",
        "description": "Tanzania website",
        "id": 2

    }, {
        "image": "img/portfolio04.jpg",
        "name": "Boyd Photography",
        "description": "Facebook Profile"

    }, {
        "image": "img/portfolio05.jpg",
        "name": "EveryShilling App",
        "description": "Web and mobile App ERP solution"

    }, {
        "image": "img/portfolio05.jpg",
        "name": "Ecosolutions",
        "description": "Environmental NGO website"

    }
]

[
{
    "title": "First Post",

    "content": "Lorem ipsum dolor sit amet, consectetur adipisicing elit. Quas nisi odio neque aliquam magni explicabo sint iste incidunt minus itaque ducimus voluptas similique eos natus nobis alias quam accusamus, aspernatur doloremque amet, nesciunt esse velit. Repudiandae sunt dolorem esse eum, qui aliquid pariatur velit enim autem temporibus minima cumque ipsa in, accusantium sed deleniti natus sequi illo nihil ipsum quam est sit dignissimos itaque quo? Aperiam qui et harum porro eligendi dolore tempora accusamus culpa voluptate animi aliquid alias necessitatibus quod ipsam hic, dolorem expedita suscipit, nobis quas quia. A eum ullam alias saepe accusantium deleniti doloremque tempora assumenda error ipsam incidunt quam optio itaque atque minima eos dicta quidem officiis, obcaecati architecto voluptas, debitis illo consequatur. Blanditiis debitis quisquam obcaecati possimus modi, repudiandae alias vero, officia doloremque numquam deserunt nobis illo ipsum ex consectetur iure minima doloribus quasi! Libero iure nulla placeat omnis magni error ducimus facere, magnam officia, assumenda delectus commodi qui praesentium eaque quaerat perspiciatis pariatur, temporibus quibusdam. Accusantium a accusamus quas, ut quisquam dignissimos officia, in maiores explicabo temporibus eaque velit iure omnis totam delectus amet laboriosam debitis pariatur consectetur. Laborum, vel accusamus illo officiis! Minima recusandae, earum numquam architecto vitae illo nostrum fugit sequi! Non in ratione delectus minima quae eligendi temporibus cupiditate! Iusto debitis hic nostrum alias libero dolores obcaecati veritatis reprehenderit ipsam eius unde fugiat, natus numquam minima saepe et totam dignissimos. Molestiae deleniti consequuntur deserunt illum, quas rem. Dolore soluta non culpa, officiis excepturi, beatae, tempore, odit aliquam magnam eum delectus. Aspernatur fugit a facilis eos amet. Ab modi atque dolor repudiandae autem similique nostrum fugit excepturi commodi nam reprehenderit voluptatem deserunt ipsam magni ullam aliquam, molestiae aut hic alias nesciunt cupiditate expedita quidem ipsum. Labore maiores facilis possimus repudiandae itaque autem natus at dignissimos enim ratione accusantium perferendis ut perspiciatis in, recusandae culpa commodi repellat quod veniam. Sequi magni ut iusto autem a vero sapiente tempora sunt iure distinctio itaque dicta quidem, nam provident dolorum est quam, nesciunt veritatis natus nostrum. Beatae, modi eveniet provident magni cumque laboriosam non quasi praesentium. Facilis debitis et nam veniam sint optio ullam nisi reprehenderit, cumque praesentium modi dicta velit, soluta dolor eum voluptates odit consequuntur. Soluta nam, magni quibusdam! Animi temporibus eum dolor quas sed ex aliquid tempora, quis magni sunt esse ipsum voluptatibus illum sit, magnam accusantium quisquam distinctio. Facere at tempore maxime placeat reprehenderit sed sint ipsa ad suscipit veritatis quos illo sequi facilis hic veniam nihil maiores error doloremque, amet illum earum. In, quidem dolores obcaecati accusamus esse dolore, sit itaque ab. Dolor iure culpa provident incidunt. Blanditiis earum, commodi id ad ducimus praesentium obcaecati doloribus sunt, aut repellat veniam impedit atque temporibus dolorem facilis explicabo maxime facere reiciendis neque modi autem corporis dolor fuga! Aut voluptatem perspiciatis obcaecati quos eius est aspernatur, exercitationem quam laborum, eos, inventore explicabo. A nemo, rerum tenetur veritatis perferendis, inventore commodi neque porro facere accusamus totam. Aut quaerat accusamus adipisci sunt aliquid ducimus similique eum assumenda autem, quidem, reiciendis asperiores vitae veniam hic quas quisquam?",
    "id": 0
}, {
    "title": "Second Post",

    "content": "Lorem ipsum dolor sit amet, consectetur adipisicing elit. Impedit voluptatum laudantium soluta deserunt optio voluptatibus quod facilis ab excepturi libero. Dolore quidem quia reprehenderit explicabo, pariatur ad, repudiandae sit. Explicabo facere odio consectetur excepturi. Similique non, atque impedit? Dolor alias, numquam, quia inventore, dolorem nobis nemo ipsam asperiores recusandae fugit tempora ducimus, provident vitae quae! Iste accusantium hic voluptatem, maiores quo suscipit veniam placeat dolorem. Quidem ducimus, est velit beatae quae eveniet laboriosam atque vero consequatur sed! Libero laboriosam consequuntur, delectus dignissimos. Unde, a? Magnam totam labore amet quasi nemo impedit explicabo! Repellendus possimus odit mollitia, fugiat laborum soluta velit deserunt tempore vero repellat autem a perferendis odio, sunt sapiente nobis illo explicabo. Inventore dignissimos quae ea hic cupiditate voluptates eos ratione voluptatibus laboriosam illo delectus odio voluptatem exercitationem maiores ipsum totam similique itaque minus nam, provident maxime beatae temporibus perferendis aliquam. Tempora modi, sequi quaerat dolor quas numquam magni error, maxime officia. Sapiente voluptatem labore quidem quia facere esse dolores ipsam iusto amet in nulla aliquam dignissimos harum ducimus, quos, perspiciatis molestiae reiciendis est, voluptates. Enim libero repellendus, voluptatem recusandae dolorem natus ex veniam blanditiis consequatur commodi doloremque quasi similique aliquid, sit tempore, sequi optio! Ad, aliquam quae, amet ratione sequi quibusdam vitae magnam eaque officia labore quidem odit quasi. Enim dolore saepe qui consequatur veniam similique eum quia eligendi obcaecati porro, repudiandae quam ratione distinctio sit fuga at! Reprehenderit magni, sequi sapiente quasi maxime laboriosam, optio ullam facere pariatur amet iure debitis possimus porro odio sed tempora illo eveniet deserunt illum eos enim dolorem, assumenda. Odit et soluta quas laudantium libero placeat, aut provident, maxime incidunt sapiente ad, veniam ipsam, ex odio laborum expedita harum rem. Ducimus, ad voluptas modi suscipit, recusandae nemo perferendis doloremque labore, asperiores nisi explicabo. Impedit libero at excepturi voluptatum porro, vel nihil et dolores voluptas molestias vero maiores deleniti, possimus eos architecto cum, sapiente non cupiditate soluta id? Dignissimos, fugiat, temporibus. Soluta aut alias officia, doloremque dolores est impedit quo non ullam dolore dolor quos, autem nostrum magni excepturi sed minima optio, incidunt ipsam similique praesentium vel nam sint tempore! Dolorum quas, eius, quis rerum et ipsam quod, vitae quidem hic officia inventore. Alias itaque vero temporibus nemo rerum, cumque esse labore, libero, suscipit blanditiis saepe illum perferendis omnis hic nulla nostrum unde provident eaque a fuga iste pariatur delectus aliquam dolore dicta! Praesentium ipsa numquam quam sed impedit quibusdam iure accusamus, rem.",
    "id": 1
}, {
    "title": "Third Post",

    "content": "Lorem ipsum dolor sit amet, consectetur adipisicing elit. Porro repudiandae ut nostrum ab tenetur maiores illum ipsa vitae iste earum, commodi, voluptatibus quisquam saepe. Esse ab mollitia tempora expedita, assumenda aperiam nobis? Ipsa obcaecati autem, sit magnam magni consequuntur veritatis praesentium veniam nulla dolores repellat doloribus voluptatibus itaque aperiam. Suscipit accusantium, eligendi tempora error minus, nemo, obcaecati quam sapiente inventore eaque eius voluptatum nesciunt! Accusamus repellendus explicabo labore ipsa eligendi fuga, itaque non asperiores minima ullam perspiciatis, incidunt sequi, enim ipsum cum, earum sit quibusdam ad culpa architecto qui voluptatem quaerat impedit. At beatae ullam dolores incidunt sint. Amet quasi vel laborum eius cum mollitia maiores similique obcaecati. Unde necessitatibus ullam, possimus. Labore, natus. Quis iusto ipsa maiores porro quae odio, quas libero in ea excepturi incidunt harum. Harum magni laudantium earum, aperiam officiis quidem reprehenderit eaque deserunt possimus illum commodi excepturi dicta debitis tenetur. Aut, eaque ipsam necessitatibus minus, doloremque, provident quas quibusdam cupiditate deleniti veniam quasi? Perspiciatis, cupiditate totam. Officiis quo pariatur eligendi, cupiditate sed dolorem ad reiciendis nobis est eaque facilis fugiat nihil voluptatum, obcaecati quisquam sapiente sunt labore et mollitia distinctio molestias eius tempora quae vel. At fugiat soluta in, asperiores eius odio voluptatum nobis quo tempore quidem, labore, iure omnis qui aliquid dolores non accusantium quam harum dolore ea suscipit, deserunt. Quasi repudiandae voluptate laudantium cum, provident beatae sapiente illo atque quas eius consequatur autem ipsa libero, ab tenetur, magni omnis itaque ipsum asperiores optio earum eaque. Quam a iusto delectus accusamus, inventore sint earum repellendus, deserunt maxime fugit magnam. Ipsum hic, illo officiis earum placeat harum neque recusandae vero quidem quibusdam consequatur corporis vitae odio nisi fuga, quod unde adipisci enim nam quae numquam! Cupiditate cumque ratione rem eius eos. Praesentium iusto dolores eos atque doloribus debitis eaque quasi ut mollitia, nisi, ipsam error expedita nobis, unde suscipit laborum quo? Incidunt necessitatibus reiciendis nulla minus dicta rerum dolor illo delectus tenetur quae, impedit reprehenderit ipsum voluptates numquam laborum ipsa. Voluptas, asperiores, ratione consectetur beatae consequatur praesentium cumque autem provident officiis tempora laudantium veniam voluptatem consequuntur explicabo tempore dolores est amet suscipit eaque delectus saepe natus. Rerum optio, suscipit quae libero reprehenderit dolorem neque. Sapiente officiis aut, odit asperiores amet unde voluptatum itaque hic dolor. Reprehenderit totam fuga voluptate iste quis magni illo sequi quod nisi consectetur obcaecati ducimus fugiat harum corrupti optio, nulla dolor placeat tenetur eaque recusandae officia eius facilis libero! Error nemo explicabo sunt minima, veniam dolorem. Porro atque natus totam in rem voluptates eaque, perspiciatis nemo inventore, maiores iste id, culpa, cum distinctio incidunt possimus earum. Praesentium eveniet libero ad voluptatem quas modi, animi id ducimus qui necessitatibus aliquam odio, reprehenderit atque hic accusantium molestias consequatur eligendi, asperiores autem voluptatibus cum. Maxime fuga recusandae pariatur perferendis totam magni eligendi enim sunt, voluptas quae laudantium, incidunt cum iure, ut est laboriosam deleniti at iste voluptatum assumenda vitae dignissimos! Quam possimus, eveniet illo, eos vel aperiam. Ratione iusto tempora dicta, molestiae veniam. Quam, suscipit accusantium commodi praesentium eveniet maxime dolore, iure ipsum eius. Numquam obcaecati molestiae dicta, maxime iusto cupiditate omnis assumenda nobis quisquam. Perspiciatis, dolorem? Placeat, dignissimos dolorum alias nulla tenetur aperiam enim asperiores eveniet veniam maiores, illo? Cupiditate beatae voluptas voluptatum nulla eveniet qui quasi placeat impedit inventore possimus, minus doloremque ipsum, repellat, cumque, itaque! Voluptatum, repellendus quos corporis? Mollitia est amet quisquam, at sunt distinctio vero odio sapiente autem non beatae possimus architecto reiciendis labore voluptatum dicta natus totam delectus eveniet dolor eius quasi incidunt reprehenderit nemo nihil. Pariatur, accusantium animi itaque neque quam laudantium! Nulla distinctio eos, animi impedit, sed excepturi voluptatem, tempore odio natus odit voluptas deleniti velit.",
    "id": 2
}
]

我希望当有人单击第一个 HTML 代码中的第一个 anchor 标记时,他们会被带到相应的detail.json 文件....即当您单击第一个 <a href="#/portfolio/{{detail.detailid}}"><i class="fa fa-share animated"></i></a> 时然后您将被带到 id 0 的detail.json

最佳答案

为 json 文件创建 View ,

// Create a route for portfolioCtrl like below
portfolio/:jsonFileName

现在从路由参数portfolioCtrl中找出文件名

var jsonFileName = $routeParams.jsonFileName 

并获取具有名称的 json 文件

$htttp.get("wherever/" + jsonFileName + ".json");

关于javascript - 如何结合使用 anchor 标记和routeParams通过ID获取JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34544056/

相关文章:

javascript - jQuery 或 Javascript - 根据环境动态更改链接(相对/站点相对/绝对)

javascript - 不透明元素上的非不透明元素

html - 显示标签定制

javascript - 有没有办法使用 ng-repeat 动态更改对象的键

javascript - 如何调用其他文件中的RequireJS函数?如何分离RequireJS文件?

javascript - 如何创建链接而不显示网址?

javascript - AngularJS 使用 ng-style 设置宽度

html - html5中的YouTube视频未显示我选择的视频

javascript - Angular 数组不更新 View

javascript - 使用 angularjs 使用属性检查取消选中复选框