Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 05.07.2016, 11:27
Интересующийся
Отправить личное сообщение для unsafePtr Посмотреть профиль Найти все сообщения от unsafePtr
 
Регистрация: 05.07.2016
Сообщений: 12

Базовая структура приложения
Всем привет. Дней 5 уже плотно налегаю на Angular, прохожу обучающие материалы с нескольких сайтов, по тому у меня начинает в голове вариться каша.
В частности использую следующий style-guide
Пытаюсь правильно раздробить приложение на части, но пока всё тщетно. По не понятной мне причине шаблон контроллера не хочет отображаться.

В index.html исть следующий элемент:
<div ng-view></div>

Сам контроллер
angular
    .module('adminPanel')
    .controller('orderController', orderController);

orderController.$inject = ['orderService', 'logger'];

function orderController(orderService, logger) {
    // vm - View Model
    var vm = this;

    vm.orders = [];

    load();

    function load() {
        return getOrders()
            .then(function () {
                logger.info('Orders were loaded')
            });
    }

    function getOrders() {
        return orderService
            .getOrders()
            .then(function (data) {
                vm.orders = data;
                return vm.orders;
            });
    }
}

View:
<div ng-repeat="order in vm.orders">
    {{order.id}}
</div>

В чём может быть проблема. Мне что бы двигаться дальше надо хотя бы простейшее связывание сделать.
Прилагаю и код, подскажите пожалуйста в чём проблема
Вложения:
Тип файла: zip angular_app.zip (3.1 Кб, 2 просмотров)
Ответить с цитированием
  #2 (permalink)  
Старый 05.07.2016, 13:13
Аватар для destus
Профессор
Отправить личное сообщение для destus Посмотреть профиль Найти все сообщения от destus
 
Регистрация: 18.05.2011
Сообщений: 1,207

Почему модуль без зависимостей объявляется? Он уже где-то был раньше объявлен? Я за основу беру вот эту структуру https://github.com/angular/angular-p...ree/master/app, то есть компонент со своим шаблоном в отдельной папочке.

И вместо такого
orderController.$inject = ['orderService', 'logger'];

использую это https://github.com/olov/ng-annotate в системе сборки проекта.

Последний раз редактировалось destus, 05.07.2016 в 13:16.
Ответить с цитированием
  #3 (permalink)  
Старый 05.07.2016, 13:25
Интересующийся
Отправить личное сообщение для unsafePtr Посмотреть профиль Найти все сообщения от unsafePtr
 
Регистрация: 05.07.2016
Сообщений: 12

Да, он был раньше объявлен в app.config. И уже в других фаилах используем get нашего модуля.
angular
    .module('adminPanel', [
        'ngRoute'
    ])
    .config(configRoutes);

function configRoutes($routeProvider) {
    $routeProvider
        .when('/', {
            templateUrl: 'app/components/orderView.html',
            controller: 'orderController',
            controllerAs: 'order'
        })
        .otherwise({
            redirectTo: '/'
        });
}
Ответить с цитированием
  #4 (permalink)  
Старый 05.07.2016, 13:36
Аватар для destus
Профессор
Отправить личное сообщение для destus Посмотреть профиль Найти все сообщения от destus
 
Регистрация: 18.05.2011
Сообщений: 1,207

controllerAs: 'order'

<div ng-repeat="order in vm.orders">

конфликтов быть не может?
Ответить с цитированием
  #5 (permalink)  
Старый 05.07.2016, 14:26
Интересующийся
Отправить личное сообщение для unsafePtr Посмотреть профиль Найти все сообщения от unsafePtr
 
Регистрация: 05.07.2016
Сообщений: 12

Сообщение от destus Посмотреть сообщение
controllerAs: 'order'

<div ng-repeat="order in vm.orders">

конфликтов быть не может?
Допустим в рутинге у меня прописано следущее:
template: '<div ng-repeat="ord in order.orders">{{ord.id}}</div><h1>{{order.smth}}</h1>',
controller: 'orderController',
controllerAs: 'order'

В контроллере есть следующие данные:
vm.orders = [];
vm.smth = 'smth to test';

В консоли при обновлении страницы отображается:
Код:
Info:Orders were loaded angular.js:13708:18
not well-formed order.json:1:1
При этом json выглядит так:
Код:
{
  "id": "1",
  "name": "someOrder"
}
На странице order.smth отображается, а ord.id нет.
Ответить с цитированием
  #6 (permalink)  
Старый 05.07.2016, 15:01
Аватар для destus
Профессор
Отправить личное сообщение для destus Посмотреть профиль Найти все сообщения от destus
 
Регистрация: 18.05.2011
Сообщений: 1,207

unsafePtr,
В коде много ошибок было, отправляю исправленную версию во вложении.
Вот так выглядит https://postimg.org/image/askgw48n5/
Вложения:
Тип файла: zip app.zip (2.4 Кб, 2 просмотров)
Ответить с цитированием
  #7 (permalink)  
Старый 05.07.2016, 15:35
Интересующийся
Отправить личное сообщение для unsafePtr Посмотреть профиль Найти все сообщения от unsafePtr
 
Регистрация: 05.07.2016
Сообщений: 12

Большое Вам спасибо! Подскажите, пожалуйста, хорошие обучающие материалы по Angular.
Ответить с цитированием
  #8 (permalink)  
Старый 05.07.2016, 18:24
Аватар для destus
Профессор
Отправить личное сообщение для destus Посмотреть профиль Найти все сообщения от destus
 
Регистрация: 18.05.2011
Сообщений: 1,207

unsafePtr,
Лучшее и актуальное что видел http://www.angularjsbook.com/angular-basics/chapters/ + гайд на офф.сайте.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
2 Ext приложения в одном :) XAPuTOH ExtJS 2 01.02.2016 07:40
ionic модальное окно при старте приложения andz2 Angular.js 3 10.06.2015 18:29
Структура приложения и организация кода desperado Angular.js 1 28.12.2014 10:55
верстальщик для приложения вконтакте tadjik1 Работа 3 23.06.2012 15:34
Помогите с архитектурой приложения epson Общие вопросы Javascript 6 09.02.2012 16:32