Django Angularjs动态评级应用程序
我正在尝试用django创建Angularjs评级应用程序。我正在使用角度引导的评级机制 我已经创建了一个控制器,它只能处理一个对象的评级,但我想创建一个应用程序,它可以对我网站上的任何对象进行评级,无论它们在哪里。 要识别每个对象,我使用: 数据id={{id}}data app label={{app_label}}数据模型={{model} 我的模板: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"
<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);
}
});
};
}
]);