О Авалондже
Avalon-это простая и простая в использовании мини-структуру MVVM. Впервые он был опубликован 2012.09.15 и был разработан для решения различных взглядов на ту же бизнес -логику. Фактически, эта проблема на самом деле может быть решена просто с использованием общих шаблонов фронтальных шаблонов и делегирования событий jQuery, но по мере расширения бизнеса код полон различных селекторов и обратных вызовов, которые трудно поддерживать. Поэтому полностью отделение бизнеса от логики может полагаться только на архитектуру. Первое, о чем я подумал, был MVC. Я попробовал магистраль, но код не упал, но поднялся. Это была очень случайная возможность. Когда я столкнулся с WPF Microsoft, элегантная архитектура MVVM сразу же привлекла меня. Я думаю, что это решение, которое я всегда преследовал.
MVVM полностью разделяет весь передний код на две части, и обработка представления реализована с помощью привязки (Angular имеет более холодное существительное, называемое инструкциями), а бизнес-логика сосредоточена в объектах, называемых виртуальными машинами. Пока мы работаем с данными виртуальной машины, он естественным образом и волшебным образом синхронизируется с представлением. Очевидно, что у всех загадок есть своя внутренняя информация. C# реализуется с помощью заявления Attributes Accessest Attributes, так же как JS имеет какие -либо соответствующие вещи. Слава Богу, IE8 впервые представил эту вещь (Object.DefineProperty), но, к сожалению, есть ошибка, но это привело к тому, что другие браузеры внедрили ее, поэтому IE9+ может использовать ее безопасно. Я давно искал старомодный IE, но я действительно не мог этого сделать, поэтому я использовал VBScript для его реализации.
Функция Object.DefineProperty или VBS заключается в преобразовании определенного свойства объекта в сеттер и Getter. Нам нужно только угнать эти два метода, и мы можем тайно управлять представлением через паб/субмоть. Чтобы ознаменовать руководство WPF, я назвал этот проект после первоначального названия кода разработки WPF Avalon. Это может действительно помочь персоналу выйти из моря страданий дома и прийти в рай данных!
Вне по теме:
Недавно я взял на себя проект, и передняя часть использует структуру MVVM Avalon. Для людей, которые подвергались воздействию Angularjs, всегда кажется, что Авалон все еще «слишком» легкий (не комплимент)
Онлайн -одобрение Avalon - не более чем: внутри страны, небольшой по размеру, избегает работы DOM, мало в работе и совместим с IE6; Недостаток: «однако, у Авалона также есть свои недостатки - он менее известен», я хочу быть спокойным ...
Я пожаловался, что переход jQuery зависит от селекторов и сложных операций DOM, но эффекты AJAX и анимации Avalon все еще должны полагаться на другие элементы управления. На самом деле, они часто используются с jQuery. Я пожаловался, что jQuery неотделим от jQuery. Это действительно трагедия ... очень сложно начать с угловой, это низкая трудность в начале работы с NG, это хорошая экология, мощные функции, полные документы и переводы, зрелое и активное сообщество, а также много официальных плагинов и сторонних плагинов.
Проблемы с эффективностью, чтобы сбалансировать эффективность развития и производительность, это всего лишь вопрос выбора. Люди, которые использовали NG, не будут беспокоиться о проблемах с производительностью и будут жаловаться на совместимость с угловой версией. Но Авалон по -прежнему сделал такое заявление, подобное следующему: «Примечание: вышеупомянутые три ветви относительно стабильны, но они не совместимы друг с другом. Рекомендуется использовать 2.0 напрямую».
Выше приведено, чтобы жаловаться на одобрение копирайтинга. Avalon также является хорошей структурой, и он оптимизирует, улучшает и поглощает преимущества этих известных рамок MVVM. Например, версия 2.0 добавила 4 фильтра массива, и инструкции также ввели список для выполнения.
Я надеюсь, что когда кто -то, кто использовал Angular, придет, чтобы использовать Avalon однажды, они скажут: о, это неплохо!
Поделитесь двумя очень простыми фильтрами: скрыть ключевые слова и усечение символов. Это также может быть перенесено в NG. Позже есть хорошие фильтры, и я добавлю их к нему.
Ключевое слово: Avalon, пользователь, фильтр, китайские, длинные символы, усеченные, усеченные, скрытые символы, угловые
Скрыть ключевые слова
Возможно, вам придется скрыть некоторую ключевую информацию на некоторых страницах передней части (если вы действительно хотите ее скрыть, вам все равно нужно справиться с ней на заднем плане), то вы можете использовать:
/*** Код ключа В скрытой строке, скрытые символы по умолчанию -*'** Например, скрытый номер мобильного телефона: 1890000000 - 189 **** 0000; {{str | hide_code (3,4, '*')}}* @param str* @param pos position* @param Длина. 0; длина = длина || 0; newchar = newchar || '*'; if (pos <0 || length <= 0 || pos + lenghДлинное усечение персонажа (нарезанное персонажем, китайский аккаунт для двух символов - улучшенная версия)
Первоначальный усевший фильтр Avalon был перехвачен в соответствии с тем фактом, что как китайский, так и английский занимают одного персонажа. Этот фильтр улучшается, чтобы перехватить два персонажа на китайском и один персонаж на английском языке для перехвата
/*** усечь длинные струны, разрезая по длине характера, китайцы занимают двух символов; {{str | truncatex (4, '...')}}* @param str* @param длина, новая длина строки (рассчитывается в соответствии с английскими символами, один китайцы занимают два символа), количество символов, содержащих усечение* @param усечение, поля в конце новой строки* @returns {return string}*/avalon.filters. cilina_pattern =/[/u4e00-/u9fa5] | [/ufe30-/uffa0]/gi; // [/u4e00-/u9fa5] представляет китайские иероглифы, [/ufe30-/uffa0] представляет полную ширину str = str || ""; длина = длина || 30; утешение = typeOf утешение === "String"? усечение: "..."; var winkingin = function (s) {return winking_pattern.exec (s)? Верно: false;}; var calcsize = function (source) {var strtemp = source.replace (cilina_pattern, "aa"); return strtemp.length;}; var recursion = function (источник, длина) {if (calcsize (source) <= длина || (! Китайский (источник)) {return source;} else rese recursion (source. Length);}}; var sliceLength = длина - усечение. Recursion (str.Slice (0, SliceLength), SliceLength) + усечение: string (str);}Выше приведено соответствующие знания о длинном перехвате символов Авалон Китая, скрытии символов ключевых слов и индивидуальных фильтрах, представленных вам. Я надеюсь, что это будет полезно для вас. Если у вас есть какие -либо вопросы, пожалуйста, оставьте мне сообщение, и редактор ответит вам вовремя. Большое спасибо за вашу поддержку сайту wulin.com!