Форум программистов, компьютерный форум, киберфорум
Angular/AngularJS
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.88/8: Рейтинг темы: голосов - 8, средняя оценка - 4.88
0 / 0 / 8
Регистрация: 17.10.2012
Сообщений: 289

Не могу сделать push()

13.04.2017, 15:29. Показов 1716. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
routes:
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
var app = angular.module("myApp", ['ngRoute', 'ngCookies']);
 
app.config(['$routeProvider', function ($routeProvider) {
    $routeProvider
        .when('/posts', {
            resolve: {
                post: ['Post', function (Post) {
                    // console.log(post);
                    return Post.all();
                }]
            },
            controller: "PostController",
            template: '<all-posts data="post"></all-posts>'
        })
srevuces:
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
app.factory('Post', ['$http', '$q', '$route', function ($http, $q,$route) {
    return {
        all: function () {
            var defer = $q.defer();
            $http.get('/posts.json').then(function (req) {
                defer.resolve(req.data);
            }, defer.reject);
            return defer.promise;
        },
        findById: function (id) {
            var defer = $q.defer();
            $http.get('/posts.json').then(function (req) {
                var post = req.data.find(function (elem) {
                    return elem.id === +$route.current.params.id;
                });
                defer.resolve(post);
            }, defer.reject);
            return defer.promise;
        }
    }
}]);
controller:
JavaScript
1
2
3
4
5
app.controller('PostController', ['$scope', 'post', '$location', function ($scope, post, $location) {
    $scope.post = post;
    //console.log(post);
 
}]);
directive:

JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
app.directive('addPost', function ($location, $cookieStore, Post) {
    return {
        restrict: 'E',
        scope: {
            // data: '='
        },
        templateUrl: 'modules/posts/views/addPost.html',
 
        link: function (scope, elem, attrs) {
 
            scope.create = function (text) {
                var author = $cookieStore.get('user');
 
                var dateObj = new Date(), locale = "en-us";
                var month = dateObj.toLocaleString(locale, {month: "short"});
                var day = dateObj.getUTCDate();
                var year = dateObj.getUTCFullYear();
 
                var newDate = day + " " + month + " " + year;
                Post.all().then(function (data) {
                    console.log(data);
                    var last = data[data.length - 1];
                    var id = last.id + 1;
 
                    var arr = {
                        'id': id,
                        'author': author,
                        'text': text,
                        'date': newDate
 
                    };
                   // console.log(arr);
                    data.push(arr);
                   // console.log(data);
                    $location.path("/posts");
                });
            };
 
        }
 
 
    };
});
Вообщем я делаю push() и редирект, а на этой странице у меня из роутов загружаются файлы из post.json и все что я пушу, не сохраняется. не пойму как правильно написать что бы данные сохранялись. условие надо какое-то, или массив в котором делать +1 пост. Вот не пойму как это реализовать.
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
13.04.2017, 15:29
Ответы с готовыми решениями:

Git не могу сделать push
При попытке сделать пуш на гитхаб получаю ошибку: Push failed Failed with error: fatal: Could not read from remote repository. ...

Сделать так чтобы если вводится push выполнялась функция push, если pop то pop
Помогите пожалуйста с данным вопросом: например у меня есть список и несколько возможных с ним операций (например push - добавить элемент...

Push firebase не могу настроить
Приветствую. Когда был обычный GCM у меня прога работала. Потом они внедрили фаербэйс и все полетело. Пытаюсь сделать новый проект и уже...

7
 Аватар для Resume
143 / 133 / 69
Регистрация: 08.11.2013
Сообщений: 767
Записей в блоге: 5
13.04.2017, 19:44
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Post.all().then(function (data) {
                    console.log(data);
                    var last = data[data.length - 1];
                    var id = last.id + 1;
 
                    var arr = {
                        'id': id,
                        'author': author,
                        'text': text,
                        'date': newDate
 
                    };
                   // console.log(arr);
                    data.push(arr);
                   // console.log(data);
                    $location.path("/posts");
                });
data - это данные, которые пришли. И вы в них же хотите вставить данные.
0
0 / 0 / 8
Регистрация: 17.10.2012
Сообщений: 289
13.04.2017, 22:05  [ТС]
та это я понял, а как нужно сделать?
0
 Аватар для Resume
143 / 133 / 69
Регистрация: 08.11.2013
Сообщений: 767
Записей в блоге: 5
13.04.2017, 23:10
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
var objData = "";
Post.all().then(function (data) {
                    console.log(data);
                    var last = data[data.length - 1];
                    var id = last.id + 1;
 
                    var arr = {
                        'id': id,
                        'author': author,
                        'text': text,
                        'date': newDate
 
                    };
                   // console.log(arr);
                    objData.push(arr);
                   // console.log(data);
                    $location.path("/posts");
                });
0
0 / 0 / 8
Регистрация: 17.10.2012
Сообщений: 289
14.04.2017, 09:21  [ТС]
objData.push is not a function
0
 Аватар для Resume
143 / 133 / 69
Регистрация: 08.11.2013
Сообщений: 767
Записей в блоге: 5
14.04.2017, 10:53
Мой косяк
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
var arr = [];
Post.all().then(function (data) {
                    console.log(data);
                    var last = data[data.length - 1];
                    var id = last.id + 1;
 
                    var obj = {
                        'id': id,
                        'author': author,
                        'text': text,
                        'date': newDate
 
                    };
                   // console.log(obj);
                    arr.push(obj);
                   // console.log(data);
                    $location.path("/posts");
                });
0
0 / 0 / 8
Регистрация: 17.10.2012
Сообщений: 289
14.04.2017, 11:06  [ТС]
не то что я хотел, вообще ничего не изменилось. может вы меня не так поняли. смысл в том что я беру данные из файла posts.json когда перехожу на страницу posts в роутах.

JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
var app = angular.module("myApp", ['ngRoute', 'ngCookies']);
 
app.config(['$routeProvider', function ($routeProvider) {
    $routeProvider
        .when('/posts', {
            resolve: {
                post: ['Post', function (Post) {
 
                    return Post.all();
                }]
            },
            controller: "PostController",
            template: '<all-posts data="post"></all-posts>'
        });
}]);
а тут мне нужно вставить еще один пост, (я вроде как вставляю его, но делаю редирект и беру опять данные по новой из файла), так вот я не знаю как сделать так что бы вставлялся еще один пост который я пытаюсь добавить
0
 Аватар для Resume
143 / 133 / 69
Регистрация: 08.11.2013
Сообщений: 767
Записей в блоге: 5
14.04.2017, 11:18
Лучший ответ Сообщение было отмечено smokehawker как решение

Решение

Понял теперь о чем речь.
Тогда предлагаю вот такой вариант: в фабрику добавляете два метода getPosts и setPosts.
JavaScript
1
2
3
4
5
6
7
8
9
    var Posts = "";
 
    function setPosts(posts) {
      Posts = posts;
    }
 
    function getPosts() {
      return Posts;
    }
И в контроллере вызывается метод фабрики:
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
var arr = [];
Post.all().then(function (data) {
                    console.log(data);
                    var last = data[data.length - 1];
                    var id = last.id + 1;
 
                    var obj = {
                        'id': id,
                        'author': author,
                        'text': text,
                        'date': newDate
 
                    };
                   // console.log(obj);
                    arr.push(obj);
                   название_фабрики.setPosts(arr); 
                   // console.log(data);
                    $location.path("/posts");
                });
И после этого вместо стркоки, где вы заново берете данные из json файла, пишите:
JavaScript
1
название_фабрики.getPosts();
Таким образом осуществляется передача данных между контроллерами.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
14.04.2017, 11:18
Помогаю со студенческими работами здесь

Не могу понять, как отправлять push уведомления
Делал всё по этой статье https://habr.com/ru/post/321924/#pristupaem-k-napisaniyu-klienta На моменте отправки стал сильно тупить, так как...

Как сделать, чтобы при нажатии кнопки Push Button загоралась та или иная кнопка Radio Button
вопрос: Как сделать,чтобы при нажатие кнопки Push Botton загоралась та или иная кнопка Radio Button?

Не могу установить Windows из-за того,что не могу сделать выбор установки
Подскажите, я устанавливаю виндовс XP,с диска,на экране высвечивает загруска с диска С, ниже автоматическая загрузка с драйверами,ещё ниже...

Приветствую, не могу разобраться с кодом программы и не могу сделать .obj файл
.model tiny; нужно будет получить исполняемый файл формата СОМ .code org 100h start: mov ax, 3 int 10h ; устанавливаем...

Не могу сделать полиморфизм. Не могу до конца понять пример по этому поводу
Есть такая задача: Класс Animal должен быть абстрактным, имеет имя и вес. Класс Reptile имеет habitate, который держит в себе среду...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Первый деплой
lagorue 16.01.2026
Не спеша развернул своё 1ое приложение в kubernetes. А дальше мне интересно создать 1фронтэнд приложения и 2 бэкэнд приложения развернуть 2 деплоя в кубере получится 2 сервиса и что-бы они. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит токи на L и напряжения на C в установ. режимах до и. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru