Я был привлечен, чтобы исправить сайт, который был в огне пару месяцев назад. У меня есть большинство вещей под контролем, и я собираюсь установить различные элементы списка пожеланий. Один из них связан с некоторым угловым кодом, который я просто не могу сделать, чтобы делать то, что хочу. На некоторых страницах есть видеоролики, за которыми следует короткая викторина. Мне нужно обновить оценки пользователя после каждого события. До сих пор, это оказалось достаточно легко общий балл, который выглядел так:Как обновить угловой тег
<a id="updateafterscore" href="~/user/leaderboard/" class="fill-div">
{{ profile.currentScore }}
</a>
И получил обновленный с этим:
document.getElementById('updateafterscore').innerHTML = data.Data.CurrentScore;
До сих пор, так хорошо. Однако другие элементы на странице до сих пор оказались недоступными для обновления. Вот что на странице:.
Я добавил «ID =» refreshvideo»себя, так что я мог бы попытаться изменить тег Наконец, вот угловой модуль для простого круга (я ушел из фактический код рисования, так как это не совсем уместно):
angular.module('thrive.shared').directive('simpleCircle', function() {
return{
replace: true,
template: '<canvas width="60" height="60" style="margin: -10px 0 0 -15px;"></canvas>',
restrict: 'E',
scope: {
value: '@',
color: '@',
bgColor: '@',
forecolor: '@',
radius: '@'
},
link: function (scope, elem, attrs) {
var multiplyLength = 1;
var canvasElem = elem[0];
var inMotion = false;
if (scope.value <= 2) {
multiplyLength = 5;
}
scope.$watch('value', function() {
drawCircle(canvasElem, scope.color, scope.value * multiplyLength, scope.value, scope.name);
});
function drawCircle(canvas, color, calculatedPoints, displayPoints, name) {
Так, на вопрос: как, черт возьми, я обновить число, отображаемое я пробовал различные вещи:
document.getElementById('refreshvideo').setAttribute('value', data.Data.VideoWatchedCount);
document.getElementById('refreshvideo').setAttribute('data-value', data.Data.VideoWatchedCount);
$scope.profile.videosWatched = data.Data.VideoWatchedCount;
Ни одна из этих вещей не работала. Я проверил холст элемент в источнике в браузере, и я смог увидеть значение и значение данных теги меняются независимо от того, что я их установил, но изображение не изменилось. Я устанавливаю неправильную вещь? (Возможно, все, что угодно $ смотреть смотрит) Должен ли я заставить какую-то перекраску холста ?
Подход - это все неправильно. Angular обновит live html на основе значений из переменных модели области в контроллерах и директивах. – charlietfl
«подход - это все неправильно» определяет этот проект. Я не создал его. Тем не менее, мне все еще нужно что-то сделать из того, что я описал выше. Это поможет подсказка, где начать быстро исправлять это. – Argle