从工厂动态获取阵列

时间:2015-09-04 07:53:23

标签: arrays angularjs dynamic factory

我正在尝试从工厂获取信息并尝试打印动态。 在我这样做之前:

<div class="articlePage">
    <h4> {{ posts[0].title  }} </h4> <span style="color: #666;"> {{ posts[0].date }} </span>
    <p> {{ posts[0].text }} </p> {{id}}
</div>

但是现在我说“[0]”所以我只询问了阵列中的第一个,但是从现在起它只有一页,所以它需要动态。

在我的主页上,我有很多帖子,当我点击一个帖子时,我想阅读特定页面上的完整帖子。

这就是我工厂的样子:

    App.factory('PostsService', [function () {
    var postsService = {};

    var _posts = [{
            id: 00,
            title: 'Kabinet in hoger beroep tegen klimaatvonnis',
            text: 'Dat bevestigen Haagse bronnen na berichtgeving in dagblad Trouw. Het kabinet zegt tegelijkertijd wel bereid te zijn om extra maatregelen te nemen om de uitstoot van broeikasgassen terug te dringen. Staatssecretaris Mansveld van Milieu maakt naar verluidt dinsdagmiddag bekend hoe het kabinet dat wil doen. De zaak tegen de overheid werd aangespannen door actiegroep Urgenda en negenhonderd klagers. Die stelden dat de Staat zich meer moet inspannen om de CO2-uitstoot in Nederland terug te dringen.',
            date: '28 september 2015'
    },
        {
            id: 01,
            title: '\'Leraren kritisch over passend onderwijs\'',
            text: 'Dat blijkt uit onderzoek van het AD en Duo Onderwijsonderzoek. Door passend onderwijs kunnen leerlingen die meer hulp nodig hebben, vaker terecht in het reguliere onderwijs. Bijna de helft van docenten (47 procent) in het voorgezet onderwijs zegt echter te weinig tijd te hebben om dergelijke jongeren goed te helpen. In het basisonderwijs is dat zelfs 84 procent. Extra handen in de klas staan dan ook op het verlanglijstje van vrijwel alle docenten in het voortgezet onderwijs (84 procent) en het basisonderwijs (99 procent). Ook zegt 98 procent van de leraren op de middelbare school behoefte te hebben aan kleinere klassen, tegenover ongeveer 95 procent van hun collega\'s in het basisonderwijs. Het onderzoek werd uitgevoerd onder 1668 onderwijsmedewerkers, zoals leraren, directeuren en zorgcoördinatoren.',
            date: '15 januari 2015'
    },
        {
            id: 02,
            title: 'Premier Curaçao dient ontslag in',
            text: 'De partij van Asjes, Pueblo Soberano (PS), had eerder op de dag het vertrouwen in de minister-president opgezegd. De partij heeft niet bekendgemaakt waarom het vertrouwen in de premier is opgezegd, maar de PS-fractie botste de afgelopen maanden een aantal keer openlijk met Asjes over verschillende beleidskwesties. Het vertrek van Asjes leidt niet direct tot de val van het kabinet. Een van de meningsverschillen draaide om de steun die de premier bleef geven aan de gevolmachtigde minister van Curaçao in Nederland, Marvelyne Wiels. Zij ligt zwaar onder vuur na het verschijnen van een kritisch rapport van de Curaçaose Ombudsman over haar functioneren. De fractie zou haar niet meer willen steunen. Minister van Volksgezondheid Ben Whiteman is maandagavond door de gouverneur gevraagd de functie van minister-president waar te nemen voor een periode van drie maanden. Whiteman heeft de functie geaccepteerd. Hij zei tegen de pers de gang van zaken rond het vertrek van Asjes te betreuren.',
            date: '31 augustus 2015'
    },
        {
            id: 03,
            title: 'Asscher heeft nog geen akkoord met Marokko over uitkeringen',
            text: 'Desondanks hoopt de bewindsman nog steeds tot een akkoord te komen, schrijft hij dinsdag aan de Tweede Kamer. Het socialezekerheidsverdrag regelt de uitbetaling van Nederlandse uitkeringen voor Marokkaanse-Nederlanders in Marokko. Asscher wil die uitkeringen aanpassen aan het levenspeil in Marokko en dus verlagen. De regering in Rabat voelt hier echter niets voor. Het is de tweede keer dat Asscher moet meldden dat hij niet tot een akkoord is gekomen. Eerder hoopte hij er al op 15 juni uit te zijn. Later verschoof die datum naar 1 september. In de afgelopen periode is intensief overleg gevoerd met Marokko. Tot op heden heeft dit echter nog niet geresulteerd in een akkoord, aldus Asscher. Een nieuwe datum voor een mogelijk akkoord noemt hij niet. Vooral regeringspartij VVD heeft zich hard gemaakt voor aanpassing van het socialezekerheidsverdrag. De Tweede Kamer nam vorig jaar een VVD-motie aan waarin stond dat het verdrag moest worden opgezegd als de onderhandelingen niet snel vruchten zouden afwerpen.',
            date: '02 april 2015'
    }
    ];

    postsService.posts = _posts;

    return postsService;
}

如果你不问一些你需要知道的东西,我希望你理解我的问题,希望你能帮助我。

1 个答案:

答案 0 :(得分:0)

更新了答案

HTML

<div ng-controller="myCtrl">
  <div >Post</div>
  <div ng-repeat="post in posts | filter:filters">
    <h4 ng-click="filters.id = post.id"> {{ post.title  }}</h4>
    <span style="color: #666;"> {{ post.date }} </span>
    <p> {{ post.text }} </p>
  </div>
  <div ng-click="filters.id = ''" ng-if="filters.id == ''">Go Back</div>
</div>

控制器

app.controller("myCtrl" , function($scope,PostsService) {          
    $scope.posts = PostsService.posts;
    $scope.filters = {};                    
});

参考plunker

<强>释

点击帖子的标题,然后只有该帖子可见,然后可以看到“返回”按钮返回所有帖子页。

使用filters对象完成处理,该对象仅过滤执行click的帖子。