Вопросы с тегами [single-page-application]

0

голосов
0

ответ
18

Просмотры

Как интегрировать Social Войти с помощью существующего .Net ядра Web API бэкэнда и угловой SPA фронтэнда с рабочей OpenIddict пользователя / паролем и каналом передачи маркерами

TL; DR Вопрос: как реализовать социальный логин (OAuth2 потока авторизации) с существующим приложением SPA / Web API, который основан на личных данных, пользователя / пароль, однонаправленного маркера аутентификации? У меня есть существующее приложение, который имеет: Backend: .Net Core 2 Web API с идентификацией и OpenIddict услугами, сконфигурированное, с процессом аутентификации рабочей на основе пароля пользователя / вызов для однонаправленных маркеров. Пользователи сохраняются с Идентичность (AspNetUsers). Часть кода Startup.cs // Зарегистрировать OpenIddict услуги. services.AddOpenIddict () .AddCore (опции => {options.UseEntityFrameworkCore () UseDbContext ();.}) .AddServer (опции => {options.UseMvc (); options.EnableTokenEndpoint ( "/ подключить / маркер"); опции .AllowPasswordFlow (); options.AllowRefreshTokenFlow (); опция. AcceptAnonymousClients (); options.RegisterScopes (OpenIdConnectConstants.Scopes.OpenId, OpenIdConnectConstants.Scopes.Email, OpenIdConnectConstants.Scopes.Phone, OpenIdConnectConstants.Scopes.Profile, OpenIdConnectConstants.Scopes.OfflineAccess, OpenIddictConstants.Scopes.Roles); }) .AddValidation (); , Frontend: SPA Угловое 7 приложение, которое потребляет этот бэкэнд API и токенов авторизации Таким образом, в основном текущие настройки, пользователь вводит пользователь / пароль в SPA, который вызывает бэкенд / подключения / маркер конечной точки, которая проверяет учетные данные и генерирует маркер для клиента. А теперь мне нужно интегрировать Social Login (OAuth2 поток авторизации), так что пользователь выбирает логин с провайдером, перенаправляется на страницу авторизации поставщиков, получает перенаправляется обратно к моему заявлению, которое должно создать идентификатор пользователя и сохранять данные идентичности UserLoginInfo и предоставить мой маркер приложения, так что пользователь может войти в систему. Я понимаю, поток авторизации OAuth2, что необходимо запросить код авторизации, а затем Обмен код авторизации для доступа Токена для этого провайдера. Я также знаю, что этот поток должен использовать бэкенд, когда он использует конфиденциальную информацию, как client_secret, которые не могут быть сохранены в стороне клиента. Но в какой-то момент пользователь должен взаимодействовать с веб-интерфейсе, так, соединяющим эти части, кажется, очень трудно, учитывая, что они широко используются технологии. Все практические примеры, которые я нашел на Google, были с помощью приложения .Net ядра MVC. Я также нашел эту статью ASP.N Co, 3. 0 Preview 4 - Аутентификация и авторизация для ООР, что кажется перспективным, но все еще в режиме предварительного просмотра 4. Я уже создал социальные приложения провайдеров и я client_id, client_secret. Кроме того, зарегистрировавшись мои других страниц URL. То, что я пытался без успеха было: В пользователь фронтэнда выбирает войти в системе с социальным провайдером, пользователь перенаправляется на страницу авторизации провайдера, аутентифицирует себя и перенаправляется от поставщика к моему фронтэнду URL (redirect_uri) с кодом поставщика тогда мой интерфейс называет мой бэкенд / Связь / маркер существующей конечной точки прохождения выбранного поставщика и полученный код, конечная точка была запрограммирована, чтобы получить у поставщика и код также, то мой бэкенд называет получить маркер доступа URL-адрес проводки «grant_type», «authorization_code» «код», код «redirect_uri провайдера "" providerSecret и получает StatusCode: 401, ReasonPhrase: «Несанкционированный» ответ Что я делаю неправильно? Это было очень трудно время, чтобы получить эту работу. То, что работало, но это не то, что мне нужно неявный 2 шага поток авторизации, используя внешний интерфейс для вызовов аутентификации провайдера и вызов бэкэнда, чтобы получить мой предъявителю маркера и создать идентификатор пользователь. С этим пользователем установка сделал успешную регистрацию с помощью социального провайдера, к сожалению, это не то, что мне нужно EDIT: Составила схему того, что будет реализован, оно терпит неудачу на этапе 5/6 с StatusCode: 401, ReasonPhrase: «Несанкционированные» и дальнейшие шаги не завершены. providerSecret и получает StatusCode: 401, ReasonPhrase: «Несанкционированный» ответ Что я делаю неправильно? Это было очень трудно время, чтобы получить эту работу. То, что работало, но это не то, что мне нужно неявный 2 шага поток авторизации, используя внешний интерфейс для вызовов аутентификации провайдера и вызов бэкэнда, чтобы получить мой предъявителю маркера и создать идентификатор пользователь. С этим пользователем установка сделал успешную регистрацию с помощью социального провайдера, к сожалению, это не то, что мне нужно EDIT: Составила схему того, что будет реализован, оно терпит неудачу на этапе 5/6 с StatusCode: 401, ReasonPhrase: «Несанкционированные» и дальнейшие шаги не завершены. не то, что мне нужно неявный 2 шага поток авторизации, используя внешний интерфейс для вызовов аутентификации провайдера и вызов бэкэнда, чтобы получить мой предъявителю маркера и создать идентификатор пользователь. С этим пользователем установка сделал успешную регистрацию с помощью социального провайдера, к сожалению, это не то, что мне нужно EDIT: Составила схему того, что будет реализован, оно терпит неудачу на этапе 5/6 с StatusCode: 401, ReasonPhrase: «Несанкционированные» и дальнейшие шаги не завершены. не то, что мне нужно неявный 2 шага поток авторизации, используя внешний интерфейс для вызовов аутентификации провайдера и вызов бэкэнда, чтобы получить мой предъявителю маркера и создать идентификатор пользователь. С этим пользователем установка сделал успешную регистрацию с помощью социального провайдера, к сожалению, это не то, что мне нужно EDIT: Составила схему того, что будет реализован, оно терпит неудачу на этапе 5/6 с StatusCode: 401, ReasonPhrase: «Несанкционированные» и дальнейшие шаги не завершены.
Fernando Ribeiro
1

голосов
0

ответ
40

Просмотры

Как избежать перегрузочный SoundCloud виджет в React SPA, связываясь прочь и обратно

У меня есть Реагировать однократное применение Page, и одна из ссылок страницы с помощью встроенного SoundCloud виджета. Когда я соединяю прочь и вернуться на эту страницу виджет перегружается, посылая различные сетевые запросы. Я хочу, чтобы мое приложение как можно более. Является ли это просто природа ООР с встроенным виджетом? Я не использую Redux. Должна ли я быть?
akorn3000
1

голосов
1

ответ
43

Просмотры

Есть классический способ для крепления SPA и API с помощью Google Cloud App Engine?

Я хотел бы использовать Google Cloud App Engine, чтобы служить SPA и REST API, обеспеченных позади стены аутентификации. Есть ли рекомендуемый способ сделать это? До сих пор я нашел учебники о том, как обеспечить себе API, но не в SPA. Оба конца подается из разных проектов, но я хотел бы иметь уникальный шаг аутентификации. Типичный поток будет: Перед подачей исходного кода SPA, обратитесь для проверки подлинности После проверки подлинности служит SPA и позволяет SPA получить доступ к API ресурсов Спасибо!
Lucas
1

голосов
0

ответ
16

Просмотры

Поведение при перенаправлять Предварительно обрабатывать мета-тег установлен

У меня есть Угловое SPA, с определенной страницы (Page А), который мы хотим временно перенаправить на другую страницу (страницу B). Мы устанавливаем следующие заголовки, так что определяет Предварительно обрабатывать перенаправление Важно, что флаг prerenderReady устанавливается истина ПОСЛЕ Page B полностью вынесен? Или пререндер затем пытаться сканировать страницу B отдельно?
MichaelAttard
1

голосов
0

ответ
50

Просмотры

Мастер PWA останавливается рабочая корзинка после первого этапа

Я настраиваю в PWA и пытаюсь добавить сервисный работник с помощью Work Box. Когда я типа «Мастер» рабочая корзинка в к терминалу, только первый вопрос о корневом файле спрашивается, а затем клеммные замерзает, и я не могу ничего другого типа. Пожалуйста помоги!
Connor
1

голосов
0

ответ
310

Просмотры

Dynamically load Google Tag Manager and switch in SPA

Отдел маркетинга хочет отделить Диспетчер тегов Google для каждой страны. Для нормального сайта, а не SPA, мы можем легко сделать это на основе URL. Будет ли переключатель клиента к другому URL, то страница будет обновляться, код страны добавляется в URL и правильное GTM может быть загружено. Теперь для SPA (в угловых, машинопись) это немного сложнее. В настоящее время мы не имеем параметр языка / страны в этом приложении, но он может быть изменен в любом случае в веб-приложении. Конечно, страница не будет обновляться. Я пытаюсь найти способ, чтобы динамически загружать и выгружать GTM сценарий. Я могу успешно загружать и выгружать элемент в но менеджер тегов добавляет больше элементов. общественный loadScriptSimple (страна: строка) {// сначала удалить существующий узел вар существующего = document.getElementById ( "tagmanager"); если (существующий && existing.parentNode) {existing.parentNode.removeChild (существующий); } // console.log ( 'добавления узла к голове ...'); пусть узел = document.createElement ( 'сценарий'); если (страна === "NL") {node.textContent = «(функция (ш, д, с, л, я) {ш [L] = W [L] .... (окно, документ,«Скрипт », 'dataLayer', 'GTM-XXX'); ";} еще {// TODO для более поздних загрузки других node.textContent ="(функция (ш, д, с, л, я) {ш [л] = ш [л] .... (окно, документ, 'скрипт', 'dataLayer', 'GTM-YYY'); ";} node.type = 'текст / JavaScript'; node.async = TRUE; node.charset = 'UTF-8'; node.setAttribute ( "идентификатор", "tagmanager"); документ. getElementsByTagName ( 'голова') [0] .appendChild (узел); console.log ( 'загружаемый скрипт'); } Источник: https://stackoverflow.com/a/38473334/2901207 Так можно было бы загрузить его по первому требованию (например, в первый раз в стране определяется на основе IP), но после того, как изменения в стране, две метки будет быть загружен. Есть ли простой способ удалить существующие элементы, а затем создать новые, как и выше?
CularBytes
1

голосов
0

ответ
75

Просмотры

HTML AntiForgery Токен не работает с угловыми 5 SPA

У меня есть Asp.Net MVC 5 с угловыми 5 SPA. На моей странице index.cshtml Я добавил @ Html.AntiForgeryToken () это создает скрытое значение токена и печенье. Теперь я прочитал скрытое значение маркеров и прикрепить его к коллекторам для почтового вызова с помощью Углового перехватчика. В моем веб-контроллера API, я получаю значения лексем и печенья правильно. Однако утверждение, AntiForgery.Validate (tokenCookie, tokenHeader); бросает недопустимый маркер ошибки. Примечание: значение печенья такого же путем из сессии. Но скрытый маркер значение изменяется, когда я навигации. Не уверен, что о том, как это происходит в SPA. Дайте мне знать, если какой-либо идеи по этому вопросу.
Shankar Naru
1

голосов
0

ответ
32

Просмотры

Как реализовать саман ЦММЫ angular4 применения

Я хочу, чтобы реализовать самана DTM (Dynamic Tag MANGEMENT) с моей angular4 применения. Я новичок в этом и любой позитивный шаг может помочь мне. Спасибо
Nileema Gaykwad
1

голосов
2

ответ
48

Просмотры

Страница измерения нагрузки для React SPA

Я ищу способ измерить время загрузки страницы и другую матрицу для React SPA. Я гугле за то же самое и нашел некоторые инструменты, такие как бумеранг и т.д. Может ли один предложить мне любые доступные инструменты для того же. Заранее спасибо.
rahul
1

голосов
0

ответ
209

Просмотры

Best pattern to call AWS API from Elm SPA?

Я занимаюсь разработкой приложений следующими довольно близко Фельдман Elm SPA примера с API, размещенной на AWS API Gateway. Моя проблема заключается в следующем: я должен подписать мой API вызовы с AWS API Подпись v4. Это менее тривиальная задача, чем я первоначально думал в Эом: Там нет подписи пакета Elm AWS, поэтому я, естественно, смотрел на библиотеках JS для использования через порты. Вариант 1: Использование AWS Amplify API, который делает все работы => Но тогда, как обработать результат в наиболее Элм-эск образом (в идеале с RemoteData). Вариант 2: Использование сторонних JS библиотеки просто подписать запрос выкован Вязов Http.request и отправить SEND / обработать запрос HTTP через Elm => До сих пор я нашел только багги реализаций AWS Sigv4, я предпочел бы официальную реализацию тем не мение. В 2-х случаях, я застрял с Главным Parent / Страница Дети связи: Я могу послать запрос 1) или 2) через порт от ребенка. Но тогда, как ребенок может получить ответ на его просьбу? Действительно, все ответы идут в Элм через тот же порт подписки. Нужно ли «тег» исходящие запросы, а затем отправить вам ответ, основанный на бирке? Но это будет выглядеть ужасно и не масштабируется. Обратите внимание, что речь идет о App модели и архитектуре. Это не основной вопрос о Elm портов (я уже успешно вызывать API из Elm). Любые рекомендации или указатели оценили. Спасибо! Дополнительная информация о моей установке (после первого комментария) Я следую AWS наилучшей практики (сценарий # 3 Доступ к ресурсам с API шлюза и Lambda с пользователем Бассейн) Интерфейсные пользователи App управляются: Cognito пользователя Pool (регистрация, знак- в, и т.д ...
Mathieu François
0

голосов
0

ответ
12

Просмотры

Инъекционные самозагрузки в одном приложении страницы

Я недавно взял задачу поиска после унаследованного приложения, которое WebForms, а также одно приложения страницы, которая впрыскивает все страницы в главную страницу. Я хочу, чтобы иметь возможность постепенно вводить Bootstrap и ВЫБ.2 в приложение, как это унаследованное приложение и, вероятно, представляя файл на главной странице одной сломается много вещей. Так вот мой вопрос, у них есть главный Webform позволяет называть его Main.aspx, они затем перейти к страницам, вводя DOM и JS в Main.aspx. У меня есть страница, которая будет впрыскиваются в main.aspx, но я хочу эта страницу, чтобы также включать самозагрузки и Выбор2 (в отличии от других страниц пока), но когда я впрыснуть самозагрузки и ВЫБ.2 и вызвать функцию ВЫБ.2 он дает мне ошибку говоря выбор2 не функция, я предполагаю, что это потому, что я загрузке JavaScript после Main. ASPX загружен. Кто-нибудь знает какие-либо способы, чтобы обойти это? Я попытался включить это в моей новой странице, как описано выше, но я получаю Выбор2 не является функция. Я включил его в Main.aspx и он работает, но ломает много других вещей в приложении, которое является, почему я хочу сделать это постранично сейчас.
user3376687
1

голосов
1

ответ
67

Просмотры

Is there a standard pattern for OIDC based Social Login with IDaaS?

Сценарий: OpenID-подключения на основе социального входа для SPA. Случай 1: В случае SPA, который зарегистрирован в качестве клиента OAuth 2.0 с Social Authentication Provider (. Ех Google) OAuth / РСИН роли карту следующим образом: владелец ресурса = Аутентификация пользователя клиента = SPA Authorization Server = Social Authentication Provider (например, . Google) ресурсы сервер = Social Authentication Provider (например, Google) случай 2:. Теперь давайте рассмотрим случай социальная аутентификацию для SPA с использованием IDaaS (напр окт / Auth0).. IDaaS зарегистрировал клиента OAuth 2.0 с Social Authentication Provider (напр., Google) и SPA прописал клиента OAuth 2.0 с IDaaS. Вопрос: Является ли это случай использования комбинации из двух потоков РСИНА Flow 1 (вложенные?): Клиент владельца ресурса = Аутентификация пользователя = IDaaS (. Ех Okta) Авторизация Server = Social Authentication Provider (напр. Google) ресурсов сервера = Social Authentication Provider (. Ех Google) (на данный момент социального Provider утверждал id_token (ISS = Google, ауд = IDaaS) в IDaaS redirect_uri) Поток 2: владелец ресурса = Аутентификация пользователя клиента = SPA Авторизация сервера IDaaS ( ех Okta) ресурсов сервера:. IDaaS (. ех Okta) (в конце концов, IDaaS утверждал id_token (ISS = IDaaS, ауд = SPA) для SPA redirect_uri, и в этот момент аутентификации SPA завершена). Является ли выше понимание правильно? Кроме того, есть стандартная РСИН / OAuth модель для этого вида архитектуры, которая включает в себя использование IDaaS в качестве брокера идентичности? Okta) ресурсов сервера: IDaaS (. Ех Okta) (в конце концов, IDaaS утверждал id_token (ISS = IDaaS, ауд = SPA) для SPA redirect_uri, и в этой точке аутентификации в SPA завершена). Является ли выше понимание правильно? Кроме того, есть стандартная РСИН / OAuth модель для этого вида архитектуры, которая включает в себя использование IDaaS в качестве брокера идентичности? Okta) ресурсов сервера: IDaaS (. Ех Okta) (в конце концов, IDaaS утверждал id_token (ISS = IDaaS, ауд = SPA) для SPA redirect_uri, и в этой точке аутентификации в SPA завершена). Является ли выше понимание правильно? Кроме того, есть стандартная РСИН / OAuth модель для этого вида архитектуры, которая включает в себя использование IDaaS в качестве брокера идентичности?
Jatin
1

голосов
2

ответ
337

Просмотры

Условный маршрут в Vue.js

У меня есть две разные точки зрения, что я хотел бы показать на том же пути, в зависимости от того, маркер находится в LocalStorage или нет. Я мог бы переместить логику непосредственно в самой точки зрения, но мне было любопытно узнать, есть ли путь к нему в маршрутизаторе. Что-то вроде: экспорт по умолчанию новый маршрутизатор ({режим: "История", база: process.env.BASE_URL, маршруты: [{путь: "/", название: "дом", компонент: функция () {если (... ) {} вернуться ViewA еще {вернуть ViewB}}},]}); Я попытался с выше код, но не работает. Приложение строит хорошо, но ни один из этих двух взглядов не показано.
Edgar Derby
1

голосов
1

ответ
427

Просмотры

Как создать Node.js Экспресс приложение, предлагающий Vue.js SPA?

Я пытаюсь создать проект Node.js, который использует Экспресс, чтобы предоставить несколько бэкэнд API, и служить SPA построен с Vue.js. Когда я использую Vue Cli для инициализации проекта, я получаю, например SRC / main.ts основной файл и команды НПМ запустить служат для запуска сервера Dev и следить за изменениями и НПМ выполнения сборки построить выпуск продукции. Когда я использую экспресс-генератор приложений для создания проекта, я получаю ./app.js основной файл и запуск НПМ для запуска сервера и следить за изменениями. Как я могу объединить их в единый проект, оба служили одним и тем же сервером Express? Предпочтительно так, что одна команда будет смотреть + изменения обновления для сервера и клиента? Я хочу использовать Vue компоненты одного файла и машинопись, которые (возможно?) Требуют шаг сборки. (Мне не нужен динамический серверный рендеринг шаблонов Vue, просто статический SPA приложение при условии.
Sampo
1

голосов
0

ответ
20

Просмотры

Защита отдельных статических файлов в веб-приложений ASP.NET

У меня есть требование, где я должен защищать отдельные статические файлы в ASP.NET (не ASP.NET Ядра, пока) приложения. Справочная информация: У нас есть SPA (Угловое), который будет развернут в папку / DIST на сервере. На том же приложении некоторые концентраторы REST APIs и SignalR размещаются. Доступ к REST API, защищен OAuth однонаправленного знак (JWT). Доступ к статическим файлам не защищен. СП таким образом реализуются, что он сам выполняет проверку подлинности и авторизацию через РСИН / OAuth (MSAL.js). В SPA говорит с нашей принимающей REST API, а также для других размещенных в других местах (также защищенный с помощью OAuth). Наш клиент заказал аудитор безопасности. Они вернулись с отчетом о результатах безопасности. Один из них касается логики приложения ВНС. Это незащищенный (шок). Каждый может смотреть на него (шок). Аудитор безопасности предлагает ноны защищенной целевой страницы. Когда пользователи войти, то они направляются в полномасштабную SPA. Только может видеть логику приложения (на самом деле не усиление безопасности на мой взгляд) идентифицированные пользователи. Моя работа состоит в том, чтобы сделать анализ, как мы можем достичь этого предложения и сколько стоимость будет связан с изменением. Команда разработчиков состоит из интерфейсных разработчиков (Node.js человек), которые не имеют каких-либо знаний о ASP.NET. Моя мысль была, чтобы позволить им разработать целевую страницу, которая будет в конце наиболее вероятно статический файл. Так что мой вопрос заключается в том, можно ли настроить приложение ASP.NET таким образом, что доступ к статической целевой странице не защищен, но доступ к статическому приложению защищен. Для справки я добавлю часть web.config и Startup.cs. общественного недействительными конфигурации (IAppBuilder приложение) {ConfigureWebApi (приложение); ConfigureSignalR (приложение); } Частных статических аннулируются ConfigureWebApi (IAppBuilder приложение) {HttpConfiguration конфиг = новый HttpConfiguration (); WebApiConfig.Register (конфигурации); Строка b2cTenant = ConfigurationManager.AppSettings [ "ида: DashboardTenant"]; Строка ClientID = ConfigurationManager.AppSettings [ "ида: SignalRB2cAudience"]; Строка политика = ConfigurationManager.AppSettings [ "B2C политики AAD"]; вар tvps = новые TokenValidationParameters {ValidAudience = ClientId, AuthenticationType = политика}; вар oidcConfUrl = String.Format ($ "https://login.microsoftonline.com/{b2cTenant}/v2.0/.well-known/openid-configuration?p={policy}"); приложение. UseOAuthBearerAuthentication (новые OAuthBearerAuthenticationOptions {AccessTokenFormat = новый JwtFormat (tvps, новый OpenIdConnectCachingSecurityTokenProvider (oidcConfUrl))}); app.UseWebApi (конфигурации); } Частных статических аннулируются ConfigureSignalR (IAppBuilder приложение) {app.Map ( "/ signalr", карта => {map.UseCors (CorsOptions.AllowAll); map.RunSignalR ();}); }
Yavuz
1

голосов
1

ответ
49

Просмотры

NPM - how to deploy a project on to a real server whenever there're some updates

Я использую следующий скрипт каждый раз, когда обновление окончательных кодов на «хозяина» мерзавца на реальном сервере. Git выборка сброса происхождение мерзавец --hard происхождение / мастер-тт -rf / вар / WWW / HTML / PROJECTA / node_modules / RM /var/www/html/projectA/package-lock.json RM / вар / WWW / HTML / PROJECTA / общественности / JS / реагируют / entry.js // Это SPA гт /var/www/html/projectA/public/mix-manifest.json НПМ установки --save НПМ запустить производство // следующий будет Apache повторный запуск ... Я было интересно, если какой метод развёртывание прав. Есть методы, как в следующем. 1) в приведенном выше примере 2) на реальном сервере, только делать выборку мерзавец происхождения мерзавец сброса --hard происхождения / мастер производства NPM запустить 3) создание SPA на локальном или альфа-сервере и в реальном сервере, только сделать это. мерзавец выборка происхождения мерзавец сброса --hard происхождения / мастера Я попытался как 1) и 2), но я нашел ошибку позже о случае 2), что означает, что не было никаких ошибок на моих местных, но позже ошибок на реальном сервере, как были проведены обновления. Могли бы вы дайте мне знать, если есть какие-нибудь хорошие способы развертывания проектов на реальном сервере? 1) и 2) занимает много времени, но в случае 3), я не знаю, если это является общим и безопасным. Из моего опыта, socket.io не работает в 3).
Kang Andrew
0

голосов
0

ответ
5

Просмотры

Я хочу, чтобы интегрировать OAuth кода потока грантовое и спа-салон и задний конец размещен на лазурных функций

Я работаю в ООР в угловых и лазурных функциях, как задний конец. и используя Azure активный каталог для одного знака. Я реализовал неявный Flow это работает отлично. но вопрос я не хочу подвергать access_token в браузере. Я хочу, чтобы реализовать код потока грантов с проверкой PKCE. Мне нужна рекомендация, как сделать это правильно в лазурных функциях.
user1387192
1

голосов
1

ответ
345

Просмотры

В одном приложении страницы, как определить, когда сбросит вынесенный раздел вместо сокрытия его, чтобы сохранить память браузера вниз?

Я проникаю приложение WPF предприятия на веб-приложения. На данный момент склоняюсь к одной странице приложения с использованием ASP.net mvc3, Backbone.js. На самом деле просто охота на лучшие практики. В настоящее время приложение WPF позволяет пользователям вернуться назад и вперед между многими вкладками, отображающих множество данных. Я хотел бы повторить эту функцию, и я обеспокоен: Будет ли объем данных в DOM становится слишком большим для браузера для обработки? Как иметь дело с сохранением данных, что вплоть до настоящего времени, если пользователь может иметь приложение с открытым в течение длительного периода времени? Любые советы будут оценены!
mambaJack
1

голосов
1

ответ
821

Просмотры

Использование Require.js и Backbone в не SPA (Single Page Application)

Сейчас я работаю над новым проектом Java, которая опирается на Spring MVC архитектуры (классический фронт контроллер-> dispatcher-> модели и JSP просмотров). Однако, как и большинство наших взглядов нужно Ajax динамичность (JQuery), я готов использовать Require.js и Backbone.js рамки в основном для структурирования кода JavaScript. Проблема заключается в том, что, поскольку мое приложение не SPA, я должен загрузить JS ресурсы для каждого запроса страницы поэтому проигравшей состояние в JavaScript. Это означает, что я каким-то образом придется не говоря уже о возможности маршрутизатора и модели Backbone, которые не имеют смысла для этого эффекта. В этом случае, будет ли это все еще будет необходимо использовать Backbone в таком сценарии? Советуется Require.js в такой архитектуре? Или мне лучше отказаться от этих двух технологий, которые идеально подходят для SPA в основном. Кто-нибудь имел опыт работы с ним (офф-SPA)? Благодаря кучу, Джимми
Jimmy Luis
1

голосов
1

ответ
1.5k

Просмотры

Purely ajax MVC 4 Authentication

I'm building a single page application using MVC 4. For Log in functionality I do a jquery ajax POST to this action: [HttpPost] [AllowAnonymous] public JsonResult JsonLogin(LogInFormViewModel form) { ... //If user authenticates formAuthentication.SetAuthCookie(this.HttpContext, UserAuthenticationTicketBuilder.CreateAuthenticationTicket( user)); return Json(new { success = true, viewResult = this.RenderPartialView("UserStatusBar", null) }); ... } RenderPartialView() is a custom extension that just renders my razor partial view to a string. The "UserStatusBar" is the standard bar at the top of any website that either says Login/Register if user is not authenticated or Logoff/Welcome if they are: @if (Request.IsAuthenticated) { Log out Welcome, @User.Identity.Name } else { Log in Register } In my ajax success handler I do something like this to asynchronously re-render just the user status bar after the user logs in or off: success: function (result) { if (result.success) { $('#userStatusBar').empty().html(result.viewResult, null); } } The only problem is, whenever the code steps into my custom extension RenderPartialView(), Request.IsAuthenticated is still the same as prior to the ajax call, so it wont re-render the correct status bar until the next request. How can I get around this since Request.IsAuthenticated is readonly I cannot simply set it after setting the authorization cookie. The only thing I can do is instead set a TempData property and check that instead when rendering the UserStatusBar: @if (Request.IsAuthenticated || (TempData["AjaxAuthenticated"] != null && (bool)TempData["AjaxAuthenticated"])) { } else But this is problematic because the reverse happens when logging off; Request.IsAuthenticated is STILL true after formsAuthentication.SignOut() when the status bar is being re-rendered and it again renders the incorrect markup for the status bar until the next request. I can't seem to think of a way to get around this because I also need permalinks to work so Request.IsAuthenticated is the one I'd be looking at in that case.
parliament
1

голосов
1

ответ
107

Просмотры

Как я могу справиться несколько действий в одной страницы приложения JavaScript?

Например, я мог бы иметь экран меню, экран опций, экран редактора и т.д. Раньше я обернутый каждый из них в класс при условии и активировать и деактивировать функцию для каждого из них. Функция Activate будет показывать связанный элемент DOM и начать принимать ввод. Функция Деактивировать бы скрыть связанный элемент DOM и прекратить прием входных данных. Таким образом, если пользователь был на экране меню, и нажал на кнопку «набор опций», я хотел бы сделать что-то вроде этого: this.deactivate () // Мы в настоящее время в меню, так что объект меню «это» options.activate () есть стандартный способ обработки этого сценария?
shino
1

голосов
2

ответ
496

Просмотры

Просмотр Визуализирует перед тем Knockout Персональных данных

Я уверен, что это было предложено раньше, но увы я не могу найти его - никакой помощи мне точку в правильном направлении было бы весьма признателен. Я загрузка модели вида / вида с Дюрандал и во время метода Activate Я призываю к одной записи, чтобы быть неправдоподобными, а затем отображаются. Я получаю запись назад (проверил реакцию XHR и все данные поступают обратно в порядке), но я могу только предположить, что вид загружается до готовности данных для отображения. Нет JS ошибок, ошибок нет вообще по этому вопросу, но только большой пробел в середине моего экрана, даже там, где я знаю, данные должны показать ... ViewModel: определить ([ «Дюрандаль / системы», «услуги / регистратор» , 'услуги / DataContext'], функция (система, регистратор, DataContext) {вар = ko.observable альфа-формы (); инициализируется переменная = ложь; Активирование функции (routeData) {вар ID = ParseInt (routeData.id); вернуться обновление (ID); }; функция обновления (ID) {вернуть datacontext.getaFormById (идентификатор, альфа-форма); } Вар Vm = {активации: активировать, альфа-форма: альфа-форма, название: «название ДИСПЛЕЕВ просто отлично»} возврата ВМ; }); Вид: Тестирование Я бросил в тестировании сильного и даже не делает, только название делает. Может кто-то указать мне верное направление? Я хотел бы создать скрипку, но это работает, когда я жёстко данные в ViewModel. EDIT: Ok после того, как углубиться в него немного больше можно я не возвращает объект должным образом, а именно в типе возвращаемого data.entity. Будет ли это вызвать проблемы? вар getaFormById = функция (aFormId, aFormObservable) {вар запрос = EntityQuery.from ( 'aForms') .гд ( 'идентификатора', '==', aFormId); вернуть manager.executeQuery (запрос) .then (querySucceeded) .fail (queryFailed); функционировать querySucceeded (данные) {если (aObservable) {aObservable (data.entity); } Logger.log ( 'Получено выбранные [] из альфа-формы удаленного источника данных', данные, system.getModuleId (DataContext), правда); }} функционировать querySucceeded (данные) {если (aObservable) {aObservable (data.entity); } Logger.log ( 'Получено выбранные [] из альфа-формы удаленного источника данных', данные, system.getModuleId (DataContext), правда); }} функционировать querySucceeded (данные) {если (aObservable) {aObservable (data.entity); } Logger.log ( 'Получено выбранные [] из альфа-формы удаленного источника данных', данные, system.getModuleId (DataContext), правда); }}
PW Kad
1

голосов
1

ответ
1.4k

Просмотры

Привязка событий к DOM для одной страницы приложений с JQuery и JavaScript

Я проектирование нового приложения единой страницы с JavaScript и JQuery. Тем не менее, мое самое большое беспокойство является обязательным события (например, щелчок, и т.д.) с помощью селекторов к DOM элементов, которые будут удалены раз новый «вид» загружен (новая страница создается из вызова AJAX) Что такое чистый способ реализации СП без создания утечки памяти и замедляя страницу вниз, заменяя основной вид DIV с новым содержанием?
kidalex
1

голосов
1

ответ
764

Просмотры

пейджинг нокаута и ветер

Я пытаюсь выполнить простую подкачку, но не могу понять, что я делаю неправильно. Вот что у меня есть. search.html Далее search.js вар CurrentPage = ko.observable (); вар TotalPages = ko.observable (); вар totalRecords = ko.observable (); вар аренды = ko.observableArray (); // # область Внутренние методы активации = функция () {CurrentPage (0); вернуть datacontext.getLeases (аренды, TotalPages, totalRecords, CurrentPage); }, Следующая = функция () {CurrentPage (CurrentPage () + 1); вернуть datacontext.getLeases (аренды, TotalPages, totalRecords, CurrentPage); }, Vm = {активировать: активировать, сдает в аренду: аренда, название: 'Привет там', следующий: следующий}; вернуть виртуальную машину; datacontext.js вар getLeases = функция (leasesObservable, TotalPages, totalrecords, CurrentPage) {вар запроса = entityQuery.from ( 'Аренда' ) Пропустите (CurrentPage () * 5) .Снять (5) .orderByDesc ( "leaseID") .inlineCount (истина); вернуть manager.executeQuery (запрос, leasesObservable) .then (querySucceeded) .fail (queryFailed); функционировать querySucceeded (данные) {если (leasesObservable) {leasesObservable (data.results); TotalPages (Math.ceil (data.inlineCount / 5)); totalrecords (data.inlineCount); }}}; Вызов в моем Activate работает отлично, и отображается первые 5 результатов. При нажатии на кнопку Далее, данные возвращаются, но я получаю сообщение об ошибке. Невозможно разобрать bindings.↵Message: ReferenceError: leaseID не определен, значение ↵Bindings: Текст: leaseID»Есть идеи? orderByDesc ( "leaseID") .inlineCount (истина); вернуть manager.executeQuery (запрос, leasesObservable) .then (querySucceeded) .fail (queryFailed); функционировать querySucceeded (данные) {если (leasesObservable) {leasesObservable (data.results); TotalPages (Math.ceil (data.inlineCount / 5)); totalrecords (data.inlineCount); }}}; Вызов в моем Activate работает отлично, и отображается первые 5 результатов. При нажатии на кнопку Далее, данные возвращаются, но я получаю сообщение об ошибке. Невозможно разобрать bindings.↵Message: ReferenceError: leaseID не определен, значение ↵Bindings: Текст: leaseID»Есть идеи? orderByDesc ( "leaseID") .inlineCount (истина); вернуть manager.executeQuery (запрос, leasesObservable) .then (querySucceeded) .fail (queryFailed); функционировать querySucceeded (данные) {если (leasesObservable) {leasesObservable (data.results); TotalPages (Math.ceil (data.inlineCount / 5)); totalrecords (data.inlineCount); }}}; Вызов в моем Activate работает отлично, и отображается первые 5 результатов. При нажатии на кнопку Далее, данные возвращаются, но я получаю сообщение об ошибке. Невозможно разобрать bindings.↵Message: ReferenceError: leaseID не определен, значение ↵Bindings: Текст: leaseID»Есть идеи? затем (querySucceeded) .fail (queryFailed); функционировать querySucceeded (данные) {если (leasesObservable) {leasesObservable (data.results); TotalPages (Math.ceil (data.inlineCount / 5)); totalrecords (data.inlineCount); }}}; Вызов в моем Activate работает отлично, и отображается первые 5 результатов. При нажатии на кнопку Далее, данные возвращаются, но я получаю сообщение об ошибке. Невозможно разобрать bindings.↵Message: ReferenceError: leaseID не определен, значение ↵Bindings: Текст: leaseID»Есть идеи? затем (querySucceeded) .fail (queryFailed); функционировать querySucceeded (данные) {если (leasesObservable) {leasesObservable (data.results); TotalPages (Math.ceil (data.inlineCount / 5)); totalrecords (data.inlineCount); }}}; Вызов в моем Activate работает отлично, и отображается первые 5 результатов. При нажатии на кнопку Далее, данные возвращаются, но я получаю сообщение об ошибке. Невозможно разобрать bindings.↵Message: ReferenceError: leaseID не определен, значение ↵Bindings: Текст: leaseID»Есть идеи? inlineCount); }}}; Вызов в моем Activate работает отлично, и отображается первые 5 результатов. При нажатии на кнопку Далее, данные возвращаются, но я получаю сообщение об ошибке. Невозможно разобрать bindings.↵Message: ReferenceError: leaseID не определен, значение ↵Bindings: Текст: leaseID»Есть идеи? inlineCount); }}}; Вызов в моем Activate работает отлично, и отображается первые 5 результатов. При нажатии на кнопку Далее, данные возвращаются, но я получаю сообщение об ошибке. Невозможно разобрать bindings.↵Message: ReferenceError: leaseID не определен, значение ↵Bindings: Текст: leaseID»Есть идеи?
Cooper
1

голосов
1

ответ
1.5k

Просмотры

вернуться к корневой странице с crossroads.js и hasher.js

Я только начинаю с crossroads.js и hasher.js, и я с успехом разбора большинства моих маршрутов. То, что я не понимаю, как вернуться к корню страницы. Я знаю, что я не говорю, что правильно, но вот мой вопрос: Я перейти к http://example.com, и я вижу, что мне нужно видеть. Изменить хэш http://example.com/#/foo и я делать то, что мне нужно сделать, чтобы изменить DOM. Я пытаюсь щелкнуть назад в браузере, и я сосать здесь. Может быть, мне нужно, чтобы определить «корень» маршрут в перекрестке? Я делаю что-то не так с историей?
Tyler
1

голосов
2

ответ
4.4k

Просмотры

Как создать страницу Single Application (SPA) в Java с Hibernate и MySQL

Я пытаюсь выбрать лучший набор инструментов для создания одного приложения Page. Я хотел бы иметь возможность использовать Java и Hibernate на стороне сервера вместе с MySQL. Но как насчет АЯКС слоя SPA? Может быть, у меня есть совершенно неверное представление о том, что и Java и Hibernate не имеют никакого смысла в этом случае? Но чем, как реализовать сложные операции на стороне сервера?
ŁukaszM
1

голосов
1

ответ
952

Просмотры

ш SPA в / Угловое и аутентификации печенья на основе

Фреймворк Я использую имеет печенье (или маркер) на основе аутентификации. Когда регистрируется пользователь обратная передача происходит и сервер помещает маркер аутентификации внутри печенья, который привязывается к браузеру пользователя. Все последующие запросы включают в себя этот маркер и, следовательно, безопасность в этом смысле. Мой вопрос: Есть ли у меня сделать обновление обратной передачи на всю страницу после того, как пользователь регистрируется, чтобы получить аутентификации-маркер помещается на пользователей браузера? Или может я просто сервер возвращает маркер аутентификации (через AJAX) на успешной регистрации пользователя (сделано с помощью AJAX, а)? Я предпочитаю последний, если это возможно. Благодарю.
The Internet
1

голосов
1

ответ
220

Просмотры

Durandal виджет не является обязательным - не ошибка

Я все шаги на странице учебника Дюрандаль но по какой-либо причине, виджет не получает связанные. Следующая строка копируется из браузера, я ожидаю его вводить с HTML из виджета. Используя альтернативный синтаксис не получить мне дальше или: Я поместил виджет в то, что я считаю правильным папку: Также добавлены следующие строки запуска подпрограммы: app.configurePlugins ({маршрутизатор: правда, диалог: правда, виджет: правда, HTTP: истинный}); widget.registerKind ( 'dateMonthPicker'); Любые мысли о том, что я мог бы не быть? Я не думаю, что код виджета сам имеет значение, потому что они просто не вызывался. Я положил отладчик в АКТИВИРУЙТЕ линии, и это даже не попасть. Самая неприятная часть, вероятно, является отсутствие ошибок, потому что я не» даже не знаю, что я могу делать неправильно. Пожалуйста помоги.
Alwyn
1

голосов
1

ответ
252

Просмотры

Магистральная приложение -Single страница - refetch и сделать модуль каждые 2 секунды

У меня есть один страница магистрального приложения с подчёркиванием шаблонами. Я использую маршрутизатор для визуализации модулей для различных хэш-путей. Для конкретных HAS-пути мне нужно заново получать данные через AJAX и снова вынести на каждые 5 секунд. Как это лучший способ сделать это? Где setInterval и где, чтобы очистить его ?. Я хотел бы, чтобы очистить таймаут, когда я перейти к другому представлению или оказать другую точку зрения в моем главном контейнере. Спасибо за помощь вы!
user3573766
1

голосов
1

ответ
382

Просмотры

SPA - Разъединение клиента с сервера

Я хочу построить единое приложение страницы с помощью ember.js в клиенте и Sails.js для REST API. Я хотел бы, чтобы полностью отделить клиент от сервера, и думаю принять все клиент assest (CSS, IMG и index.html) в CDN или s3, в то время как сервер, вероятно, будет размещен на Horoku. Как избежать проблем междоменных? с помощью CNAME, может быть? Это обычная практика? Какие инструменты доступны для такого процесса развертывания? Спасибо!
Ofri
1

голосов
1

ответ
133

Просмотры

Что такое предлагаемый подход к созданию «виджетов» в AngularJs?

Я хочу, чтобы создавать страницы, которые состоят из компонентов стиля виджета, каждый подается динамически из собственного источника бэкенда данных (SignalR). Я хочу, чтобы иметь возможность развивать эти компоненты по отдельности, и проверить их независимо друг от друга, а затем создавать страницы, опуская их в рамки. Использование AngularJs, что правильный подход?
glasswall
1

голосов
1

ответ
1.8k

Просмотры

Как ориентироваться, с историей, в шаблон MVC 5 SPA?

Я борюсь с навигацией в MVC-5 шаблон VS2013 SPA. Я сделал 2 предположение (потому что я не мог найти хорошие ссылки), но мне кажется, что я неправильно или она просто не работает хорошо: Он думал, что навигация была быть основана на типичной сп # Кодировки URL, например, чтобы перейти к пользователи учетной записи страницу управления непосредственно один должен быть в состоянии использовать: HTTP: // локальный: 18759 / # / управления Я также думал, что при навигации по веб-сайте (одна страница) Я думал, что эти # URL, где образуемые нокаута по умолчанию .js файлы, которые включены в шаблон. В сочетании с предыдущим предположением это приведет к собственно истории наращивания. HTTP: // локальный: 18759 / # / управления не кажется, чтобы перейти на страницу управления (другие # URL не работает либо). Я заметил, что некоторые, что некоторые структуры доступны для обработки этого (navrouter и sammy.js), но, насколько я могу сказать, что это занимает довольно много усилий для их реализации, особенно если это уже на месте в шаблоне. Что касается причин, почему я сделал эти предположения, есть статья здесь, которая предполагает, что это на месте из-за эту часть: // app.viewmodel.js - есть метод, называемый «addViewModel (), если (TypeOf (опция. ! navigatorFactory) == "неопределенные") {штурман = options.navigatorFactory (я, DataModel);} еще {// предлагает "#" - хэш-навигации навигатор = функция () {window.location.hash = options.bindingMemberName;} } Но в моем собственном app.viewmodel.js этих строки без ссылки на хэш вообще: если (TypeOf (options.navigatorFactory) == " управления и навигации завод довольно по умолчанию, как: app.addViewModel ({имя: "Управление", bindingMemberName: "управление", фабрика: ManageViewModel, navigatorFactory: функция (приложение) {Функция возврата (externalAccessToken, externalError) {app.errors. RemoveAll (); app.view (app.Views.Manage), если (TypeOf (externalAccessToken) == "неопределенный" || TypeOf (externalError) == "неопределенный"!) {app.manage () addExternalLogin (externalAccessToken. , externalError);} еще {app.manage () нагрузка ();.};}}}); вопрос (ы) Должен ли это работать? Если да, то как я могу это исправить? Или мне нужны дополнительные компоненты, такие как sammy.js или navrouter? функция (приложение) {Функция возврата (externalAccessToken, externalError) {app.errors.removeAll (); app.view (app.Views.Manage); если (TypeOf (externalAccessToken) == "неопределенный" || TypeOf (externalError) == "неопределенный"!) {app.manage () addExternalLogin (externalAccessToken, externalError). .} Еще {app.manage () нагрузка (); }; }}}); вопрос (ы) Должен ли это работать? Если да, то как я могу это исправить? Или мне нужны дополнительные компоненты, такие как sammy.js или navrouter? функция (приложение) {Функция возврата (externalAccessToken, externalError) {app.errors.removeAll (); app.view (app.Views.Manage); если (TypeOf (externalAccessToken) == "неопределенный" || TypeOf (externalError) == "неопределенный"!) {app.manage () addExternalLogin (externalAccessToken, externalError). .} Еще {app.manage () нагрузка (); }; }}}); вопрос (ы) Должен ли это работать? Если да, то как я могу это исправить? Или мне нужны дополнительные компоненты, такие как sammy.js или navrouter? ) {App.manage () addExternalLogin (externalAccessToken, externalError). .} Еще {app.manage () нагрузка (); }; }}}); вопрос (ы) Должен ли это работать? Если да, то как я могу это исправить? Или мне нужны дополнительные компоненты, такие как sammy.js или navrouter? ) {App.manage () addExternalLogin (externalAccessToken, externalError). .} Еще {app.manage () нагрузка (); }; }}}); вопрос (ы) Должен ли это работать? Если да, то как я могу это исправить? Или мне нужны дополнительные компоненты, такие как sammy.js или navrouter?
Stefan
1

голосов
1

ответ
52

Просмотры

Следует ли использовать модели в MVC или модели в MVVM?

Я создаю SPA (с использованием Visual Studio 2013). Приложение получает данные из службы WCF. Данные обычно включает в себя C # коллекции. Как SPA основана MVC, скопировать данные в объекты модели и передать его в представлении. Теперь я планирую использовать Knockout.js. Если мне нужно непосредственно преобразовывать данные из службы WCF в JSON или скопировать данные модели (в MVC), а затем преобразовать их в формат JSON? PS: Моя служба WCF и SPA лежат на одной и той же системе. В настоящее время я передать содержимое из службы в веб-приложения с использованием бинарной сериализации, а не в формате JSON.
rsa
1

голосов
1

ответ
1.1k

Просмотры

Отображение один просмотра страницы приложения как плавающий фрейм

У меня есть одностраничный Application (SPA), разработанные с использованием Дюрандаль и ASP.net MVC. SPA имеет довольно много мнений и просмотр моделей. У меня есть вид test.html, который отображает некоторые данные, основанные на Id. Теперь у меня есть еще один веб-приложение, которое не является SPA. Я хочу, чтобы отобразить вид, test.html, как плавающий фрейм в этом приложении и отображать данные, передавая идентификатор из второго приложения. Любая идея о том, как это может быть достигнуто? один для моего SPA, а другой для IFRAME - Мне нужно создать отдельные взгляды ли?
dhn
1

голосов
1

ответ
1.2k

Просмотры

AngularJS Loses Selected Item on View Reload (data type of parameter lost)

I'm running into an issue in an Angular SPA where a select is losing the selected item when a view is reloaded. The selected item value is correct. This is a typical search/results scenario, so I must be missing something basic. The angular module (much condensed here) is set up with ui routes and states, which determine the views and controllers to load, etc.: var DomainApp = angular.module('DomainApp', ['ui.router', 'ui.bootstrap', 'angularValidator']); // add controllers, services, and factories DomainApp.controller('ProductsController', ProductsController); DomainApp.service('ProductsService', ProductsService); var configFunction = function ($stateProvider, $httpProvider, $locationProvider) { $stateProvider .state('productSearch', { url: '/products', views: { "searchView": { templateUrl: '/Templates/products/Search.html', controller: ProductsController } } }) .state('productResults', { url: '/products/Results?categoryID', views: { "searchView": { templateUrl: '/Templates/products/Search.html', controller: ProductsController } } }) } configFunction.$inject = ['$stateProvider', '$httpProvider', '$locationProvider']; DomainApp.config(configFunction); The products controller: var ProductsController = function($scope, $stateParams, $state, $location, ProductsService) { // data for search operations $scope.searchQuery = { categoryID: $stateParams.categoryID || 0, categories: null }; // init api $scope.init = function () { var categoryResult = ProductsService.getCategories(0); categoryResult.then(function(result) { if (result.isSuccess) { $scope.searchQuery.categories = result.data.Items; } else { $scope.status.isError = true; $scope.status.errorMessage = result.message; } }); } } ProductsController.$inject = ['$scope', '$stateParams', '$state', '$location', 'ProductsService']; The products service: var ProductsService = function ($http, $q) { this.getCategories = function (categoryID) { var deferredObject = $q.defer(); var results = { isSuccess: true, message: '', data: null } $http.get('/api/categories/list/100' + ',' + categoryID). success(function (data) { results.data = data; deferredObject.resolve(results); }). error(function (data, status, headers, config) { results.isSuccess = false; results.message = 'Could not get Category list:'; for (var i = 0; i < data.length; i++) { results.message = results.message + ' ' + data[i].Message; } deferredObject.resolve(results); }); return deferredObject.promise; }; } ProductsService.$inject = ['$http', '$q']; And the product search template (view): Product Search Category: Any {{item.CategoryName}} Search In the view, the select values are populated by data-ng-init="init()", and the input box and select dropdown are tied to the same model item ng-model="searchQuery.categoryID". What happens when the view is loaded after selecting a category, is that the value is lost, and the selection reverts to "Any". The text box has the correct selected value. I verified that the select is bound to the model element, as changing the value in the input changes the selected item in the select. On reload, I can see the select flicker, looks like it has the selected value for a moment then loses it. Edit: In summary, the selected category is only "lost" as the selected item in the select. The selected category value appears correctly in the url, and in the input textbox. This isn't a reference compare issue as the select option values are item.CategoryID and not the item category object. What am I doing wrong here? How can the select be detached from the bound value and/or am I setting up the binding wrong? Incidentally, I also tried ng-options instead of ng-repeat to set up the select, but in that case changing the value in the input had no affect.
Dave Clemmer
1

голосов
1

ответ
512

Просмотры

Перехватив исходящих Кендо Сетка требует, чтобы добавить заголовок authrization JWT

Я работаю на одном приложении страницы с помощью AngularJs. Мое приложение использует маркер заголовка JWT авторизации для авторизации. У меня есть agularJs перехватчик, который добавляет заголовок авторизации для каждого исходящего вызова апи из моего SPA приложения. Недавно я добавил Кендо пользовательский интерфейс для приложения, и я заметил, что API вызовы, сделанный Кендо Сетка не проходят через мой угловой перехватчик. Есть чистый способ для перехвата всех исходящих звонков API из компонентов KendoUi, так что я могу добавить заголовок авторизации маркер?
Danny D
1

голосов
1

ответ
120

Просмотры

preventing late ajax response from updating div

Предположим следующую структуру для примитивного одного приложения страницы: статический Аякса щелчок на первой линии быстро устанавливает некоторый статический контент.: $ ( «# Название») HTML ( «статического заголовка»); $ ( '# Содержание') HTML ( 'статический контент'). нажав на второй ссылке получает некоторый контент от сервера, и когда это будет сделано, использует его, чтобы установить содержимое на странице:. $ ( «# название») HTML ( «Аякса название»); $ .Get (URL, данные, функция успеха (данные) {$ ( '# содержание') HTML (данные);.}); При нажатии на АЯКСЕ ссылки, а затем быстро (до АЯКСА возвратов) в статической связь является проблематичным, потому что, когда Аякс возвращает это будет заменить содержимое, даже если пользователь «коммутируемый» статической страницу, так что я получаю противоречивое состояние приложения с названием из одной страницы и содержания от другого: статический название динамического содержимого AJAX Каков наилучший способ разобраться в этом? Я подумал: с помощью глобальной (или приложение) область видимости переменной, где я буду отслеживать, какая страница в данный момент отображается, поэтому, когда Ajax ответы вернуться я должен проверить эту переменную перед записью содержимого на экране. есть очередь AJAX или что-то и вызвать аборт всех возможных ответов в ожидании АЯКСА всякий раз, когда я переключение страниц. не разделяя то же самое содержание DIV # для всех страниц. свое содержание каждой страницы ПОЛУЧИТЬ и переключение страниц также включает показа / скрытия дивы. Есть ли способ лучше? поэтому, когда Ajax ответы вернуться я должен проверить эту переменную перед записью содержимого на экране. есть очередь AJAX или что-то и вызвать аборт всех возможных ответов в ожидании АЯКСА всякий раз, когда я переключение страниц. не разделяя то же самое содержание DIV # для всех страниц. свое содержание каждой страницы ПОЛУЧИТЬ и переключение страниц также включает показа / скрытия дивы. Есть ли способ лучше? поэтому, когда Ajax ответы вернуться я должен проверить эту переменную перед записью содержимого на экране. есть очередь AJAX или что-то и вызвать аборт всех возможных ответов в ожидании АЯКСА всякий раз, когда я переключение страниц. не разделяя то же самое содержание DIV # для всех страниц. свое содержание каждой страницы ПОЛУЧИТЬ и переключение страниц также включает показа / скрытия дивы. Есть ли способ лучше?
cherouvim
1

голосов
1

ответ
222

Просмотры

Как перейти в маршрут без его вошли в историю браузера

Я никогда не хочу, чтобы мой выход из системы маршрута, чтобы показать историю браузера. Как я могу настроить маршрут выхода из системы никогда не войти в историю. Я знаю, что я могу назвать Activate (бесшумный: истинный), но это не решает мою проблему. Это, как я устанавливаю мои маршруты: активировать: функция () {app.init ( «покупатель»); Маршрутизатор .makeRelative ({moduleId: "ViewModels", маршрут: app.routes.routeBase}) .map ([{маршрут: "Выход", название: 'Выход', moduleId: "выход из системы / индекс", нав: правда, скрытых: app.auth.isGuest}]) .buildNavigationModel () .mapUnknownRoutes ( "ошибки / 404") .activate ({PushState: истинно}); } Есть ли что-то я могу передать здесь, что приведет маршрут выхода из системы никогда не будет регистрироваться в истории браузера? Если не, какие другие варианты у меня не достичь никогда протоколирования выхода из маршрута в истории браузера. Благодарю.
izikandrw
1

голосов
2

ответ
125

Просмотры

Создание SPA с помощью Угловое JS и нг-шоу?

Я недавно закончил учебник CodeSchool на угловой JS. Я хочу создать простой SPA, которая изменяет определенный блок содержимого внутри постоянной рамы на якорной мыши. Я думал, что я мог бы CuSe нг нажмите на тегах якорных, изменить переменную внутри контроллера, и на основе значения переменной, отображать различные пользовательские директивы, используя нг-шоу. Я немного колеблющимся, чтобы использовать нг-шоу, потому что я не уверен, если это просто скрывает элемент или, если он использует AJAX, чтобы тянуть новое содержание, и сбросить старую директиву. Этот вопрос немного трудно выразить словами. Если я использую нг-шоу, чтобы отобразить различные пользовательские директивы я загрузки содержимого всех пользовательских директив и просто показывать или не показывать их, или я просто загружая директиву, в которой нг-шоу верно?
Allenph
1

голосов
1

ответ
133

Просмотры

Как инициализировать SPA приложение при поддержке Web API

Я в настоящее время имею Aurelia одно приложения страницы Я развивающийся в WebStorm и поддержка Web API Я занимаюсь разработкой в ​​Visual Studio. В среде Dev, все работает отлично, я просто разместить свое клиентское приложение с помощью сервера WebStorm и направьте его к моей локальной Web API URL. Когда я развернуть приложение, мне нужен способ, чтобы начать мой клиент, однако. Это обычная практика, чтобы иметь маршрут по умолчанию моего Web API, вернуть мою страницу index.html? По какой-то причине кажется мне очень странным. Есть ли лучший способ первый служить мой index.html? Я не смог найти много в Интернете относительно предмета. Спасибо за какие-либо указания.
Jonesopolis

Просмотр дополнительных вопросов