阅读angularjs

时间:2015-12-23 17:30:08

标签: angularjs ionic-framework

我正在使用this指令在我的离子应用中实现read-more。 我的HTML看起来像这样:

<ion-list>
    <ion-item class="item item-thumbnail-left item-text-wrap" ng-repeat="sh in schedule_hosts" type="item-text-wrap">
        <img ng-src={{sh.imageURL}}>
        <h2>{{sh.firstName}} {{sh.lastName}}</h2>
        <p>{{sh.profession.EN}}</p>
        <p read-more ng-model="content" words="true" length="5"></p>
    </ion-item>
</ion-list>

在我的控制器中:

$scope.content = "Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Morbi commodo, ipsum sed pharetra gravida, orci magna rhoncus neque, id pulvinar odio lorem non turpis. Nullam sit amet enim. Suspendisse id velit vitae ligula volutpat condimentum. Aliquam erat volutpat. Sed quis velit. Nulla facilisi. Nulla libero. Vivamus pharetra posuere sapien. Nam consectetuer. Sed aliquam, nunc eget euismod ullamcorper, lectus nunc ullamcorper orci, fermentum bibendum enim nibh eget ipsum. Donec porttitor ligula eu dolor. Maecenas vitae nulla consequat libero cursus venenatis. Nam magna enim, accumsan eu, blandit sed, blandit a, eros." +
            "Quisque facilisis erat a dui. Nam malesuada ornare dolor. Cras gravida, diam sit amet rhoncus ornare, erat elit consectetuer erat, id egestas pede nibh eget odio. Proin tincidunt, velit vel porta elementum, magna diam molestie sapien, non aliquet massa pede eu diam. Aliquam iaculis. Fusce et ipsum et nulla tristique facilisis. Donec eget sem sit amet ligula viverra gravida. Etiam vehicula urna vel turpis. Suspendisse sagittis ante a urna. Morbi a est quis orci consequat rutrum. Nullam egestas feugiat felis. Integer adipiscing semper ligula. Nunc molestie, nisl sit amet cursus convallis, sapien lectus pretium metus, vitae pretium enim wisi id lectus." +
            "Proin at eros non eros adipiscing mollis. Donec semper turpis sed diam. Sed consequat ligula nec tortor. Integer eget sem. Ut vitae enim eu est vehicula gravida. Morbi ipsum ipsum, porta nec, tempor id, auctor vitae, purus. Pellentesque neque. Nulla luctus erat vitae libero. Integer nec enim. Phasellus aliquam enim et tortor. Quisque aliquet, quam elementum condimentum feugiat, tellus odio consectetuer wisi, vel nonummy sem neque in elit. Curabitur eleifend wisi iaculis ipsum. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. In non velit non ligula laoreet ultrices. Praesent ultricies facilisis nisl. Vivamus luctus elit sit amet mi.";

这很好用,但正如您所看到的,现在每个项目的内容都相同。 我正在寻找一种方法来创建一个更多的功能,允许我在HTML中添加文本,如下所示:

<p read-more ng-model="content" words="true" length="5">{{sh.content}}</p>

我对Angularjs和Ionic非常(非常)新手,感谢任何帮助!

1 个答案:

答案 0 :(得分:1)

您似乎在寻找指令。该指令是与Web组件相同的功能。

你的问题可能就是这样解决的。

<强>读更content.html

<p ng-if="content" read-more ng-model="content" words="true" length="length">{{content}}</p>

<强> read.more.content.js

angular.module('App')
    .directive('readMoreContent', function () {
        return {
            restrict: 'E',
            transclude: true,
            scope: {
                content: '=',
                length: '='
            },
            templateUrl: 'app/components/_read-more.html'
        };
    });

用法可以类似于

<read-more-content content="content" length="5"></read-more-content>

我的个人建议在小组件/指令上以角度分割您自己的代码。这样可以避免在最近的重构中出现很多问题。我期待着做一些与http://bradfrost.com/blog/post/atomic-web-design/类似的事情,但却是有角度的。