Ответы пользователя по тегу Angular
  • Почему директива ангуляра не видит переменную?

    Vadiok
    @Vadiok
    Веб разработчик
    Сама по себе директива не должна видеть $scope.templatePath таким образом. Как я понял из того, что требуется вам:
    // ...
    template: "Path: {{ templatePath }}"
    // ...


    PS. У вас ссылка на пример неверная, чтобы ей делиться, надо пересохранить.
    Ответ написан
    7 комментариев
  • Почему глючит select в angular при выборе?

    Vadiok
    @Vadiok
    Веб разработчик
    Проблема в следующем месте:
    <select ... ng-options="value.price as value.name group by value.group for value in holes" ...>
    ...

    У вас за выбранный параметр принимается value.price: value.price as value.name, а это неуникальный параметр. В итоге при выборе пункта выбирается последний элемент, у которого указанная цена равна выбранному значению.

    Решение: заменить value.price as value.name на value.id as value.name.

    Почему происходит то, что вы называете глюком: при выборе элемента берется его цена и это значение назначается селекту и все. Т.е. на jQuery это выглядело бы так:
    $('select').val(190);
    Ответ написан
    7 комментариев
  • Что использовать для автокомпиляции less?

    Vadiok
    @Vadiok
    Веб разработчик
    Если хочешь, можешь взять мой код для gulp:
    В gulp-tasks/config.js прописывается:
    config.common = {
    	sourceDir: "source", // Общая папка для исходников, можно указать "." для корня
    	buildDir: "dist" // Общая папка для сборки "." для корня
    };
    config.css = {
    	buildDir: "style", // Папка для сборки стилей (внутри config.common.buildDir, указанного выше)
    	fileName: "style", // Имя получаемого CSS файла
    	autoprefixerOptions: "" // На свой вкус
    };
    config.less = {
    	// ...
    	sourceDir:    "style",  // Папка для исходников less стилей (внутри config.common.sourceDir, указанного выше)
    	mainFile:     "main", // Главный less файл, который будет собираться
    	// ...
    };

    Чтобы смотреть за файлами не только в директории исходников, надо в
    gulp-tasks/less.js, где [files] переписать на
    [files, "./js/components/**/*.less", "др. файлы, за кот. надо следить"]


    Запускать gulp less:watch
    Ответ написан
    Комментировать
  • Проблемы с роутингом angular + laravel?

    Vadiok
    @Vadiok
    Веб разработчик
    Если Laravel необходимо хранить в подкаталоге, то в таком случае лучше вообще изменить пути в нем.
    • содержимое ларавеловского public засовываешь в ang
    • все остальное из ларавела, допустим, в ang/laravel
    • ang/laravel через .htaccess закрываешь от внешнего доступа
    • правишь ang/index.php, чтобы он подключал файлы не выше, а наоборот ниже - в laravel
    • Может понадобится изменить path.public

    В таком случае доступ к laravel должен работать просто по /ang/, без public
    Ответ написан
    Комментировать
  • Как совместить Laravel и Angular?

    Vadiok
    @Vadiok
    Веб разработчик
    Я для шаблонов, которые подгружаются через роутинг Angular'а использую просто php вьюхи, без Blade.
    По данным для Angular - я передаю через апи, только в роуте у меня идет запрос на /data/что-то-там, а не /api/что-то-там. Пример куска роутинга в Laravel:
    // Данные для Angular
    Route::group(['prefix' => 'data'], function() {
    	// Пользователи
    	Route::group(['prefix' => 'user'], function() {
    		Route::get('current', 'UserController@getCurrent');
    		Route::get('settings', 'UserController@getSettings');
    		Route::post('settings', 'UserController@saveSettings');
    	});
    	// ...
    });

    В таком случае в контроллерах очень удобно просто возвращать объект модели, Laravel сам его отдаст в виде JSON.
    Ответ написан
    Комментировать
  • Как дождаться загрузки основных данных до начала обработки пути?

    Vadiok
    @Vadiok Автор вопроса
    Веб разработчик
    В общем, решил следующим образом:

    1. В resolve для каждого пути добавляю
    ,resolve: {
      /* ... */
      requiredGlobalData: function(testGlobalData) {return testGlobalData();}
    }


    2. В сервисы:
    appNameService.factory('testGlobalData', function($q, someLoader1, someLoader2) {
    	return function() {
    		return $q.all([someLoader1,someLoader2]).then(function(results){});
    	};
    });


    someLoader'ы выглядят упрощенно так:
    appNameService.factory('someLoader1', function($http, $q) {
    	var dataUrl = '/someUrl1/';
    	return $http.get(dataUrl).then(function(response) {
    		return response.data? response.data : $q.reject('Ошибка получения данных');
    	}, function(err){return $q.reject(err);});
    });
    Ответ написан
    Комментировать