3

我正在尝试将jQuery Raty 插件与 AngularJS 一起使用。还没有成功。

我需要的是这样的:

<ul>
    <li ng-repeat="obj in collection">
        <p>{{obj.rating}}</p>
        <div id="star{{$index}}"></div>

        <p>{{obj.someText}}</p>

        <script>$("#star{{$index}}").raty();</script>
    </li>
</ul>

但是脚本似乎没有被执行,甚至没有出现在网页中。此外它看起来也像一个非常丑陋的方法,但我没有更多的想法。

我怎样才能做到这一点?还是我需要为星星使用不同的插件/功能?

4

2 回答 2

9

如果我必须这样做,我将制定一个AngularJS指令,如下所示:

JS

yourApp.directive("raty", function() {
    return {
        restrict: 'AE',
        link: function(scope, elem, attrs) {
            $(elem).raty({score: attrs.score, number: attrs.number});
        }
    }
}

HTML

<raty id="star{{$index}}" score="1" number="5"></raty>

在此处输入图像描述

如果你想在 Raty 上添加一些参数,你可以简单地编辑我的指令;)

于 2013-08-13T13:34:25.460 回答
4

您应该能够创建一个指令:

<div id="star{{$index}}", ng-stars>

.directive("ngStars", function() {
    return {
        restrict: 'A',
        link: function(scope, elem, attrs) {
            $(elem).raty();
        }
    }
}

虽然对 Angular 来说并不陌生,所以,这可能是错误的想法。

于 2013-08-13T13:24:51.870 回答