Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 03.01.2014, 18:16
Аватар для cyber
I am Student
Отправить личное сообщение для cyber Посмотреть профиль Найти все сообщения от cyber
 
Регистрация: 17.12.2011
Сообщений: 4,415

Вопросы по ангуляру
Щас ковыряю ангуляр, и думаю что текущий вопрос это не последний, поэтому создам отдельную тему, и буду тут спамить ангуляром.

что я делаю не так?
Почему не обрабатывается click ?
var static = angular.module("staticPage", []);

    static.directive("showPage", function () {
        return function ($scope, element) {
            element.bind("click", function () {
                console.log("click")

            });
        };
    });


<body ng-app="staticPage">

<div class="body"  ng-controller="MainCtrl">

        <div class="menu-wrap" >
            <ul class="menu" ng-repeat="item in menu">
                <li showPage> <a href="#{{item}}"> {{item}} </a> </li>
            </ul>
        </div>
<!-- .... -->


Нашел ошибку, не работает из за того что буква "P" в верхнем регистре , а атрибуты в нижнем регистре, toLowerCase - не не слышал...
__________________
Цитата:
Если ограничения и условия описываются как "коробка", то хитрость в том что бы найти именно коробку... Не думайте о чем то глобальном - найдите коробку.

Последний раз редактировалось cyber, 03.01.2014 в 18:21.
Ответить с цитированием
  #2 (permalink)  
Старый 03.01.2014, 18:20
Аватар для nerv_
junior
Отправить личное сообщение для nerv_ Посмотреть профиль Найти все сообщения от nerv_
 
Регистрация: 29.11.2011
Сообщений: 3,924

хватит срать в оффтоп http://javascript.ru/forum/angular/
__________________
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук
Ответить с цитированием
  #3 (permalink)  
Старый 03.01.2014, 18:48
Профессор
Посмотреть профиль Найти все сообщения от Maxmaxmaximus6
 
Регистрация: 19.12.2013
Сообщений: 180

и вообще в линкинг функцию передается не $scope а scope

а вообще директивы пишутся с префиксами, ты должен писать

<li ng-showPage> <a href="#{{item}}"> {{item}} </a> </li>
Ответить с цитированием
  #4 (permalink)  
Старый 03.01.2014, 18:51
Аватар для cyber
I am Student
Отправить личное сообщение для cyber Посмотреть профиль Найти все сообщения от cyber
 
Регистрация: 17.12.2011
Сообщений: 4,415

Maxmaxmaximus6, спс учту)
__________________
Цитата:
Если ограничения и условия описываются как "коробка", то хитрость в том что бы найти именно коробку... Не думайте о чем то глобальном - найдите коробку.
Ответить с цитированием
  #5 (permalink)  
Старый 03.01.2014, 18:56
Профессор
Посмотреть профиль Найти все сообщения от Maxmaxmaximus6
 
Регистрация: 19.12.2013
Сообщений: 180

а терь сравни ui версию)

ui.directive("showPage", function () {
    return function (scope, element) {
        element.on("click", function () {  console.log("click")  });
    };
});





<div controller="Main" class="menu-wrap" >
        <ul repeat="item in menu" class="menu">
            <li showPage>
                 <a href="#{item}">{item}</a>
             </li>
        </ul>
</div>
Ответить с цитированием
  #6 (permalink)  
Старый 03.01.2014, 19:00
Профессор
Посмотреть профиль Найти все сообщения от Maxmaxmaximus6
 
Регистрация: 19.12.2013
Сообщений: 180

А вообще правильнее и красивее писать (в ui) вот так:


<div controller="Main as main" class="menu-wrap" >
        <ul repeat="menuItem in main.menu" class="menu">
            <li showPage>
                 <a href="#{menuItem.hash}" bind="menuItem.text"></a>
             </li>
        </ul>
</div>




function Main (){

   menu = [
       {text: 'home page', hash: 'home'},
       {text: 'last news', hash: 'news'}
   ]

}
Ответить с цитированием
  #7 (permalink)  
Старый 03.01.2014, 19:00
Аватар для cyber
I am Student
Отправить личное сообщение для cyber Посмотреть профиль Найти все сообщения от cyber
 
Регистрация: 17.12.2011
Сообщений: 4,415

Maxmaxmaximus6, норм, но мне не особо важен синтаксический сахар, это не конечно + , но главное что бы работало как мне нужно)
__________________
Цитата:
Если ограничения и условия описываются как "коробка", то хитрость в том что бы найти именно коробку... Не думайте о чем то глобальном - найдите коробку.
Ответить с цитированием
  #8 (permalink)  
Старый 03.01.2014, 19:03
Профессор
Посмотреть профиль Найти все сообщения от Maxmaxmaximus6
 
Регистрация: 19.12.2013
Сообщений: 180

Да и вообще если хочешь глобальные значения у меня запилить то не обязательно контроллер пилить)

ui.global{
   menu: [
       {text: 'home page', hash: 'home'},
       {text: 'last news', hash: 'news'}
   ]
}


ui это модуль от которого можно отнаследовать новые модули если хочешь

ui.module('name') создаст модуль, если такой модуль уже создан то вернет его =)

Сообщение от cyber
но мне не особо важен синтаксический сахар
а мне важен на 90% сахар, так как просто сделать ЧТОБЫ РАБОТАЛО и дурак может. =)
Ответить с цитированием
  #9 (permalink)  
Старый 03.01.2014, 19:05
Аватар для cyber
I am Student
Отправить личное сообщение для cyber Посмотреть профиль Найти все сообщения от cyber
 
Регистрация: 17.12.2011
Сообщений: 4,415

Сообщение от Maxmaxmaximus6
А вообще правильнее и красивее писать (в ui) вот так:
я потом добавлю метод getHash и все
function getHash(elem) {
 return elem.hash || elem;
}


<li showPage>
   <a href="#{getHash(item)}" bind="item.text"></a> <!-- я еще не совсем разобрался в синтаксисе ангуляра но вроде так можно?! -->
</li>
__________________
Цитата:
Если ограничения и условия описываются как "коробка", то хитрость в том что бы найти именно коробку... Не думайте о чем то глобальном - найдите коробку.
Ответить с цитированием
  #10 (permalink)  
Старый 03.01.2014, 19:08
Профессор
Посмотреть профиль Найти все сообщения от Maxmaxmaximus6
 
Регистрация: 19.12.2013
Сообщений: 180

cyber,а вообще директиву шоу пейдж делать не надо, ты должен создать директиву сменьщика страниц и применить её к контейнеру страниц, и заставить её слушать изменения хэша) это к слову так.

типа

<ul>
    <li><a href='#home'>Главная</a></li>
    <li><a href='#news'>Новости</a></li>
</ul>


<ul pageContainer>
    <li page='home'>содержимое</li>
    <li page='news'>содержимое</li>
</ul>



pageContainer и page 2 взаимосвязанные директивы). Директива pageContainer слушает изменения хэша и показывает ту или иную директиву page в зависимости от значечния. но И ЭТО не правильный вариант, так как для этих целей в ангуляре есть роутер))

Сообщение от cyber
но вроде так можно?! -->
да, только функция getHash не должна делать побочных эффектов, только возвращать что-то.

Последний раз редактировалось Maxmaxmaximus6, 03.01.2014 в 19:11.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Возникли вопросы по созданию игры на javascript alex510i Общие вопросы Javascript 3 19.09.2013 16:46
Разные вопросы по элементам интерфейса от wmag -_- wmag Элементы интерфейса 12 16.08.2012 11:06
вопросы по TreeView posta ExtJS 4 18.03.2011 12:52
AJAX для ЧАЙНИКОВ (вопросы) sc2r2bey AJAX и COMET 16 10.07.2009 21:23