1

Тема: Angular 1.x - є питання

Angular 1.x - є питання
чи можна отримати значення атрибуту не використовуючи ng-click ?

<ul class="sidebar-menu">
   <li><a href="/notifications/" name="parents"><i class="notifications"></i> <span>Message</span></a></li>
   <li><a href="/notifications/" name="students"><i class="notifications"></i> <span>Message</span></a></li>
</ul>
messenger.controller('notificationsController', ['$scope', 'api', function ($scope, api) {
    var category = <сюди я хочу отримати значення атрибуту name>;
    $scope.getPage = function getPage() {

        $scope.notifications = api.notifications.query({
            category: category,
        }, function (data, responseHeaders) {
//... some code...
        });
    };
}]);
Подякували: 221VOLT1

2

Re: Angular 1.x - є питання

Якого з них? :D

3

Re: Angular 1.x - є питання

А якщо серйозно, то в я б писав

<a href="/notifications/parents">

А далі вже отримував параметр способом який дає роутер.

Подякували: ping1

4

Re: Angular 1.x - є питання

bunyk написав:

А якщо серйозно, то в я б писав

<a href="/notifications/parents">

А далі вже отримував параметр способом який дає роутер.

"способом який дає роутер."
а можна розшифрувати ці слова?

я  зробив так:.

в контролер додалося два рядки:

    var url = window.location.href.replace(/\/$/, ''); /* remove optional end / */
    var category = url.substr(url.lastIndexOf('/') + 1);


просто так сталося, що позавчора вперше побачив ангуляр і джанго рест фреймворк, а відступати не можна - позаду безробіття :)

нарив собі на вихідні документації по ангуляру, буду читати.
мені його не треба досконало знати, але розуміти що за чим і звідки дані попадають на сервер таки доведеться.

5 Востаннє редагувалося ktretyak (23.02.2017 12:40:40)

Re: Angular 1.x - є питання

Якщо у роутері ви призначили для двох різних URL один контролер, то використовуйте $location щоб визначити звідки зайшли в цей контролер:

messenger.controller('notificationsController', ['$scope', '$location', 'api', function ($scope, $location, api) {
    if($location.path() == '/notifications/parents')
   // ваша логіка
    var category = <сюди я хочу отримати значення атрибуту name>;
    $scope.getPage = function getPage() {
 
        $scope.notifications = api.notifications.query({
            category: category,
        }, function (data, responseHeaders) {
//... some code...
        });
    };
}]);
Подякували: ping1

6

Re: Angular 1.x - є питання

ktretyak написав:

Якщо у роутері ви призначили для двох різних URL один контролер, то використовуйте $location щоб визначити звідки зайшли в цей контролер:

messenger.controller('notificationsController', ['$scope', '$location', 'api', function ($scope, $location, api) {
    if($location.path() == '/notifications/parents')
   // ваша логіка
    var category = <сюди я хочу отримати значення атрибуту name>;
    $scope.getPage = function getPage() {
 
        $scope.notifications = api.notifications.query({
            category: category,
        }, function (data, responseHeaders) {
//... some code...
        });
    };
}]);

о так. ще краще!

7 Востаннє редагувалося ping (24.02.2017 15:43:17)

Re: Angular 1.x - є питання

знову вперся - вроді все правильно, а не працює:

     <th style="min-width: 250px">
       <ui-select ng-model="notificationsFilter.receiver" ng-change="filterByNotifications()">
         <ui-select-match placeholder="Select receiver" allow-clear="true">
             <span>{{ $select.selected.receiver }}</span>
         </ui-select-match>
         <ui-select-choices repeat="notification in (notifications | filter: $select.search) track by notification.id">
              <span>{{ notification.id }}  {{ notification.receiver }}</span>
         </ui-select-choices>
       </ui-select>
     </th>

тобто варіанти для вибору виводяться, вибір відбувається, а перехід на "filterByNotifications()" не відбувається.
як перевірити, чи стається подія , або на якому кроці вона зникає?

8 Востаннє редагувалося ktretyak (24.02.2017 15:50:15)

Re: Angular 1.x - є питання

Я правильно розумію, що ви не використовуєте модуль ngRoute?

9

Re: Angular 1.x - є питання

ktretyak написав:

Я правильно розумію, що ви не використовуєте модуль ngRoute?

не використовую.

підставив функцію тест замість filterByNotifications() - викликало.

    $scope.test = function () {
        alert('sdfdsfsdfdsfsd');
    }

буду копати далі. може помилка в функції...

10

Re: Angular 1.x - є питання

Ну без цього модуля ви ще довго будете мостити щось неробоче...

Ви мабуть економите на завантажених кілобайтах, так? Гляньте на те, що ви з економите, причому це лише за перше завантаження клієнта https://ajax.googleapis.com/ajax/libs/a … ute.min.js

11

Re: Angular 1.x - є питання

знов засада.
як передати у html-темплейті  об’єкт у ангуляр?
щоб замфсть такої каші:

<div class="container" ng-init="user_name='{{ user.name }}';user_id='{{ user.id }}';user_is_superuser='{{ user.is_superuser }}'">

було щось таке:

<div class="container" ng-init=" loggedUser = ' {{ user }} ' ">

саме не через api,а елегантно витягнути з темплейта.