Django Angularjs动态评级应用程序

Django Angularjs动态评级应用程序,django,angularjs,angularjs-directive,angular-ui,angular-ui-bootstrap,Django,Angularjs,Angularjs Directive,Angular Ui,Angular Ui Bootstrap,我正在尝试用django创建Angularjs评级应用程序。我正在使用角度引导的评级机制 我已经创建了一个控制器,它只能处理一个对象的评级,但我想创建一个应用程序,它可以对我网站上的任何对象进行评级,无论它们在哪里。 要识别每个对象,我使用: 数据id={{id}}data app label={{app_label}}数据模型={{model} 我的模板: <div ng-app="ratingApp"> <div ng-controller="RatingCtrl"

我正在尝试用django创建Angularjs评级应用程序。我正在使用角度引导的评级机制

我已经创建了一个控制器,它只能处理一个对象的评级,但我想创建一个应用程序,它可以对我网站上的任何对象进行评级,无论它们在哪里。 要识别每个对象,我使用:

数据id={{id}}data app label={{app_label}}数据模型={{model}

我的模板:

<div ng-app="ratingApp">
    <div ng-controller="RatingCtrl">
        <div class="rating-input">
            <div rating id="rating" ng-model="rate" max="max" readonly="isReadonly" on-leave="overStar = null" data-id="{{ id }}" data-app-label="{{ app_label }}" data-model="{{ model }}" ng-click="postRating(value)"></div>
            <div class="menge thanks" ng-hide="showMessage"><span>{$ menge $}</span></div>
            <div class="message"><div class="ng-hide thanks" ng-show="showMessage">{$ message $}</div></div>
        </div>
    </div>
</div>

你知道我如何使它更易于重用,以便对网站上的任何对象进行评级吗?

你可以创建一个自定义指令,该指令将完成你在该控制器内完成的工作。您可以在html中的任何地方使用它。引导指令评级如何?为同一对象编写新指令时是否存在冲突?你能举个例子给我指出正确的方向吗?
ratingControllers.controller('RatingCtrl', ['$scope', '$http', '$element', '$timeout',

    function ($scope, $http, $element, $timeout) {

        var messageTimer = false,
            displayDuration = 2000;

        $scope.message = "Thanks!";
        $scope.showMessage = false;

        $scope.doGreeting = function () {
            if (messageTimer) {
                $timeout.cancel(messageTimer);
            }

            $scope.showMessage = true;

            messageTimer = $timeout(function () {
                $scope.showMessage = false;
            }, displayDuration);
        };

        $scope.max = 6;
        $scope.isReadonly = false;

        var id = $element.find("#rating").attr("data-id");
        var app_label = $element.find("#rating").attr("data-app-label");
        var model = $element.find("#rating").attr("data-model");

        var request = $http.post("/rating/get-rating/", {id: id, app_label: app_label, model: model});
        request.success(function (data) {
            $scope.rate = data.sterne;
            $scope.menge = data.menge;
        });

        $scope.postRating = function (value) {
            var request = $http.post("/rating/set-rating/", {id: id, app_label: app_label, model: model, sterne: $scope.rate});
            request.success(function (data) {
                $scope.doGreeting();
                if (data.message) {
                    alert(data.message);
                }
            });
        };

    }
]);