标签: single-page-application

BreezeJS应该使用Durandal在单页应用程序中的页面之间共享实体管理器吗?

使用Durandal为单页应用程序创建BreezeJS EntityManager实例的最佳实践是什么?

是否应该在所有页面之间共享一个实体管理器实例,或者每个页面应该有一个实例?

有关实施的任何细节都表示赞赏.

single-page-application breeze durandal

2
推荐指数
1
解决办法
276
查看次数

应用程序架构与Durandal

我有一个使用DurandalJS构建的应用程序,具有以下内容:

  1. Index.html:默认基页
  2. Shell.js:shell - 包含一个菜单
  3. intro.js:如果用户未经过身份验证,则在shell中呈现viewmodel
  4. home.js:如果用户通过身份验证,则在shell中呈现viewmodel

我的身份验证代码是从shell.js调用的.

我需要我的shell能够监视intro.js和home.js文件中的一些属性.具体来说 - 如果用户选择其中一个视图中带有复选框的项目,我需要使用shell.js来更改菜单项.理想情况下,这可以通过允许shell"观察"视图模型中的内容来完成.这可能吗?

knockout.js single-page-application durandal

2
推荐指数
1
解决办法
2038
查看次数

Durandal Routing无法正常工作 - 我是否缺少配置设置?

我正在尝试使用Durandal应用程序设置,我开始时只使用两个视图进行了非常简单的配置.

发生的事情是当我调用router.navigateTo('#/ welcome')或router.navigateTo('#/ primaryapplicants')时,视图不会改变.但是,地址栏中的URL会发生变化,如果我重新加载页面,我会看到我尝试导航到的视图.

我究竟做错了什么?

这是一段视频,展示了我正在经历的行为.我在视频中引用的代码包含在下面.

main.js

require.config({
    paths: { "text": "durandal/amd/text" }
});

define(function (require) {
    var system = require('durandal/system'),
        app = require('durandal/app'),
        router = require('durandal/plugins/router'),
        viewLocator = require('durandal/viewLocator'),
        logger = require('services/logger');

    system.debug(true);

    app.start().then(function () {
        // route will use conventions for modules
        // assuming viewmodels/views folder structure
        router.useConvention();

        // When finding a module, replace the viewmodel string 
        // with view to find it partner view.
        // [viewmodel]s/sessions --> [view]s/sessions.html
        // Otherwise you can pass paths for …
Run Code Online (Sandbox Code Playgroud)

javascript url-routing single-page-application durandal

2
推荐指数
1
解决办法
4988
查看次数

Durandal中的条件路由

在我的基于HotTowel的项目中,我使用Durandal 1.1.1进行路由.

我有一个登录路由,如果用户没有登录,我想激活它.

我的路线配置如下:

var routes = [ {
    url: 'login',
    moduleId: 'viewmodels/login',
    name: 'Login',
    visible: true,
    caption: 'Login'
    },{
    url: 'moduledetail/:id',
    moduleId: 'viewmodels/moduledetail',
    name: 'ModuleDetail',
    visible: true,
    caption: 'ModuleDetail'
    }
Run Code Online (Sandbox Code Playgroud)

我想如果用户想去,#/moduledetail/1并且尚未经过身份验证,浏览器会导航到路由,#/login/moduledetail/1因此在成功登录路由后返回到#/moduledetail/1.

一个可能的解决方案是将一个navigateTocanActivatemoduledetail,如:

function canActivate()
{
    if (!loggedIn)
        router.navigateTo(`#/login/moduledetail/1`)
    return false;
}
Run Code Online (Sandbox Code Playgroud)

但导航到另一页canActivate似乎是如此愚蠢.

是否有任何方法告诉Durandal在路由时,在这种情况下使用这条路线?

single-page-application durandal hottowel durandal-navigation

2
推荐指数
1
解决办法
2380
查看次数

AngularJS只能用于SPA(单页应用程序)的上下文中吗?

我刚刚开始学习AngularJS并使用AngularJS,Spring和Hibernate构建一个项目,这个项目是一个SPA(单页面应用程序),我使用REST与服务器交互.现在我有另一个项目要处理并使用AngularJS会使这个项目的开发比较容易,但是这个项目不是SPA,使用REST也可以使它易于管理,我想知道我们切换到AngularJS的要求,只是为了制作SPA吗?

angularjs single-page-application

2
推荐指数
1
解决办法
2730
查看次数

搜索引擎索引单页应用程序

好吧,所以我一直在写Backbone.js应用程序超过一年了,我喜欢框架模型.我已经学会了如何避免所有的陷阱等等,但是作为一个单页应用程序开发人员,我还有一个领域仍然很弱:如何搜索面向公众的应用程序.

我正在开发一个博客项目,我想到的最简单的解决方案是让所有博客条目的服务器生成列表显示为/blog页面加载时呈现的部分的链接,并确保在访问/blog/:idURL时,服务器将博客内容加载到页面上的第一个div中,该div将设置为display:none.

我的问题是,这对于一个好的搜索引擎索引是否足够?SEO仍然是我作为开发人员最薄弱的技能.是否有技术可以确保搜索引擎首先抓取此内容,并且能够将该内容用于更复杂的索引?

另外,有没有办法将页面上生成的应用内容列入黑名单,因为我知道Google一直在测试抓取的JavaScript应用?在我看来,如果没有某种标准的浏览器级别事件可以在整页渲染时或者在加载所有数据之后触发,那么它就无法在这个级别完成.

无论如何,这更像是一个我知道的模糊票,但如果我们在这里得到一些好的答案,它最终可能对未来的人有用.

javascript seo search-engine single-page-application

2
推荐指数
1
解决办法
3452
查看次数

Angular 2 - 如何使关键字和描述的index.html文件标题和元标记动态化

Angular 2 - 如何使关键字和描述的index.html文件标题和元标记动态化.

我正在使用带有角度2的打字稿.

我的标签示例:

<!DOCTYPE html>
<html lang="en" prefix="og: http://ogp.me/ns#" xml:lang="en" xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <title>title needs to be dynamic</title>
    <base href="/"></base>

    <meta charset="UTF-8">
    <meta name="fragment" content="!"/>
    <meta name="description" content="description needs to be dynamic"/>
    <meta name="keywords" content="keywords needs to be dynamic" />
Run Code Online (Sandbox Code Playgroud)

这是我的路线:

{ path: '/', component: Home, as: 'Home', data:{title: 'Welcome Home'}},
Run Code Online (Sandbox Code Playgroud)

我试过这个,但它没有用:

 <title>{{title}}</title>
Run Code Online (Sandbox Code Playgroud)

javascript angularjs single-page-application angular

2
推荐指数
1
解决办法
1722
查看次数

从生成的Microsoft SPA模板VS2017 webpack中删除特定供应商css

我使用Microsoft模板创建了几个SPA项目.

dotnet new --install Microsoft.AspNetCore.SpaTemplates::*
Run Code Online (Sandbox Code Playgroud)

然后运行:

dotnet new angular
Run Code Online (Sandbox Code Playgroud)

要么

dotnet new aurelia
Run Code Online (Sandbox Code Playgroud)

这两个项目生成的文件名称webpack.config.vendor.js如下所示(来自angular sample):

const path = require('path');
const webpack = require('webpack');
const ExtractTextPlugin = require('extract-text-webpack-plugin');
const merge = require('webpack-merge');

module.exports = (env) => {
    const extractCSS = new ExtractTextPlugin('vendor.css');
    const isDevBuild = !(env && env.prod);
    const sharedConfig = {
        stats: { modules: false },
        resolve: { extensions: [ '.js' ] },
        module: {
            rules: [
                { test: /\.(png|woff|woff2|eot|ttf|svg)(\?|$)/, use: 'url-loader?limit=100000' }
            ]
        },
        entry: {
            vendor: …
Run Code Online (Sandbox Code Playgroud)

single-page-application webpack asp.net-core

2
推荐指数
1
解决办法
2686
查看次数

单页应用程序Angular + .Net Core上的Bootstrap 4

有人试图用它来申请

dotnet new --install Microsoft.AspNetCore.SpaTemplates::*
dotnet new angular
Run Code Online (Sandbox Code Playgroud)

?比如在这个例子中https://blogs.msdn.microsoft.com/webdev/2017/02/14/building-single-page-applications-on-asp-net-core-with-javascriptservices/

这个命令使用bootstrap 3创建一个angular + .net核心项目.我正在尝试使用bootstrap 4.

我试图将bootstrap 4 css放在vendor.css(bootstrap 3所在的位置)但没有成功.

有谁知道如何将bootstrap 4放在bootstrap 3上?最终使用javascript插件jquery和popper.

这将非常有帮助,谢谢!

single-page-application asp.net-core bootstrap-4 angular

2
推荐指数
1
解决办法
6654
查看次数

如何解决nginx上的404错误?

我有一个有角度的4 SPA应用程序,我使用docker进行制作.到目前为止看起来很好 通过终端我去/dist文件夹,从那里我让docker指向dist以下命令的内容: docker run -d -p 9090:80 -v $(pwd):/usr/share/nginx/html nginx:alpine

我打电话:localhost:9090在浏览器上,可以访问该应用程序.问题是当我再次重新加载页面和/或作为特定路由,然后我得到404 Not Found和nginx版本,例如nginx/1.13.5.

我一直在搜索并发现这个问题:在Nginx上找不到404错误,但遗憾的是没有解决方案.

如何解决这个问题并避免404错误?这是我必须编辑的配置步骤吗?

nginx single-page-application angular

2
推荐指数
1
解决办法
2282
查看次数