小编Jak*_*rsh的帖子

如何正确实现固定侧边栏?

我正在努力完成这个设计: 示例设计 侧边栏将被固定,但右侧(主要内容)将垂直滚动(如果用户的浏览器窗口较小,则可能水平滚动).实现这一目标的最佳方法是什么?

我尝试使用固定宽度为200px的"固定"侧边栏,然后主要内容的边距为200px.但是,如果用户的浏览器小于主要内容,则边栏会在用户尝试水平滚动时重叠所有内容.

有没有更聪明的方法来实现这一目标?谢谢!

css sidebar

26
推荐指数
3
解决办法
8万
查看次数

使用带有nodeJS和Express的AngularJS html5mode

我正在使用带有Express的nodeJS服务器来为我的AngularJS应用程序提供服务.当我使用angularJS默认路由(hashbangs)时,这一切都正常,但现在我正在尝试激活html5模式.

我正在激活html5mode,如下所示:

$locationProvider.html5Mode(true).hashPrefix('!');
Run Code Online (Sandbox Code Playgroud)

这就是我的nodeJS app.js文件的样子:

var path     = require('path'),
    express  = require('express'),
    app      = express(),
    routes   = require(path.join(__dirname, 'routes'));

app.configure(function() {
    app.use(express.logger('dev'));
    app.use(express.compress());
    app.use(express.methodOverride());
    app.use(express.bodyParser());
    app.use(app.router);
    app.all("/*", function(req, res, next) {
        res.sendfile("index.html", { root: __dirname + "/../app" });
    });
    app.use(express.errorHandler({
        dumpExceptions: true, 
        showStack: true
    }));
});
Run Code Online (Sandbox Code Playgroud)

但是,这现在将所有请求作为我的index.html文件提供,因此我从requireJS收到以下错误:

Uncaught SyntaxError: Unexpected token < 
Run Code Online (Sandbox Code Playgroud)

我尝试将以下内容添加到nodeJS中,app.js以便正确地为我的资源提供服务:

app.use("/js", express.static(__dirname + "/../app/js"));
app.use("/img", express.static(__dirname + "/../app/img"));
app.use("/css", express.static(__dirname + "/../app/css"));
app.use("/partials", express.static(__dirname + "/../app/partials"));
Run Code Online (Sandbox Code Playgroud)

但仍然没有运气.

我也尝试用以下app.all语句替换语句:

app.use(function(req, res) …
Run Code Online (Sandbox Code Playgroud)

javascript node.js express angularjs

19
推荐指数
2
解决办法
2万
查看次数

在渐进式网络应用中重定向到Google OAuth流程

我一直在使用React和Next.js开发应用程序,目前正在添加PWA支持.

用户通过Google OAuth流程登录该应用.我最初使用的是JS客户端,它使用弹出窗口,但在PWA中遇到了错误.我现在通过将用户重定向到Google的OAuth网址来使用正常的OAuth流程.

这在浏览器中工作正常.在iOS上的独立PWA中,它会在新的Safari窗口中打开OAuth页面.这意味着OAuth流程在Safari中执行,最后用户在Safari中使用应用程序而不是独立的PWA.

我正在使用这种方法重定向:

export function setHref(newLocation: string) {
  window.location.href = newLocation;
}
Run Code Online (Sandbox Code Playgroud)

这甚至看起来是每个人都建议在重定向PWA时避免弹出窗口的方法.这最近改变了吗?或者是否有另一种方法可以在独立的渐进式Web应用程序中执行重定向/ OAuth流程?

javascript oauth google-oauth progressive-web-apps

16
推荐指数
2
解决办法
3798
查看次数

如何在Python中实现Backus-Naur表单

我知道有一些模糊的类似问题已经与Python中的BNF(Backus-Naur Form)语法有关,但它们对我的应用程序没有任何帮助.

我有多个BNF需要编写代码.代码应该能够使用BNF语法生成和识别合法字符串.

我正在使用的第一个BNF是Python中的所有实数.它如下:

<real number>    ::= <sign><natural number> |
                     <sign><natural number>'.'<digit sequence> |
                     <sign>'.'<digit><digit sequence> |
                     <sign><real number>'e'<natural number>
<sign>           ::= ‘’ | ‘+’ | ‘-‘
<natural number> ::= ‘0’ | <nonzero digit><digit sequence>
<nonzero digit>  ::= 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
<digit sequence> ::= ‘’ | <digit><digit sequence>
<digit>          ::= 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | …
Run Code Online (Sandbox Code Playgroud)

python grammar parsing bnf

15
推荐指数
2
解决办法
2万
查看次数

MEAN堆栈上登录系统的体系结构?

我正在MEAN堆栈上开发一个Web应用程序(MongoDB,Express,AngularJS和node.js).我正在开发一个登录系统,并且还会保护一些Angular路由,以便只有登录用户才能访问它们.我正在尝试考虑采用这种架构的最佳方法.

我正在考虑当前的工作流程:

  • 用户通过AngularJS表单登录,该表单将http POST发送到Express端点.端点根据数据库验证用户,并使用OAuth令牌和cookie进行响应.两者都存储在mongo数据库中以供以后验证.
  • 一旦AngularJS收到登录响应,它就会使用ng-cookies存储收到的cookie,并将OAuth令牌存储在用户服务中.
  • 现在每次路径在AngularJS中发生变化时,用户服务用于通过将cookie与mongo数据库中的cookie进行比较来确保cookie仍然是合法的(这将是使用Angular的解析的API调用...这会创建一个明显的落后?)
  • 当用户单击"注销"或cookie过期时,cookie和OAuth令牌都将从数据库中删除,并且将不再有效.

这种方法有意义吗?它是否安全,是否相对有效/快速执行?

javascript mongodb node.js express angularjs

14
推荐指数
1
解决办法
5775
查看次数

尝试连接API时,Mocha测试套件出错

我正在使用mocha,通过gulp-jsx-coverage和运行我的测试套件gulp-mocha.我的所有测试都按预期运行并通过/失败.但是,我测试的一些模块通过superagent库向我的API发出HTTP请求.

在开发中,我还在localhost:3000我的客户端应用程序旁边运行我的API ,因此这是我的客户端测试试图访问的URL.但是,在测试时,API通常不会运行.每当请求通过时,都会导致以下错误:

Error in plugin 'gulp-mocha'
Message:
    connect ECONNREFUSED
Details:
    code: ECONNREFUSED
    errno: ECONNREFUSED
    syscall: connect
    domainEmitter: [object Object]
    domain: [object Object]
    domainThrown: false
Stack:
Error: connect ECONNREFUSED
    at exports._errnoException (util.js:746:11)
    at TCPConnectWrap.afterConnect [as oncomplete] (net.js:983:19)
Run Code Online (Sandbox Code Playgroud)

我已经尝试在全局帮助器中对superagent(别名为request)库中的所有方法进行存根,如下所示:

function httpStub() {
  return {
    withCredentials: () => {
      return { end: () => {} };
    }
  };
};

beforeEach(function() {
  global.sandbox = sinon.sandbox.create();

  global.getStub = global.sandbox.stub(request, 'get', …
Run Code Online (Sandbox Code Playgroud)

javascript unit-testing mocha.js gulp

10
推荐指数
1
解决办法
333
查看次数

使用Composer在Laravel 4中加载css/js文件?

我正在Laravel 4中创建一个新项目.我在Laravel 3中有一点经验,我已经习惯了资产系统.我现在在确定如何在新系统中加载CSS和JS文件时遇到了很多麻烦.

我相信我应该使用Composer PHP,但我不确定如何.我在哪里放置实际的.css和.js文件?然后如何使用Composer加载它们以便在Laravel项目中使用?

我知道有一些外部插件,如Best Asset等,用于复制Laravel 3的Assets系统,但我希望能够理解新系统,而不必使用外部插件.

有帮助吗?谢谢.

laravel composer-php laravel-4

9
推荐指数
1
解决办法
1万
查看次数

AngularJS过滤器将html作为字符串返回

我创建了一个AngularJS过滤器,可以自动从数据中找到的地址创建可点击链接.过滤器:

app.filter('parseUrl', function() {
    var  //URLs starting with http://, https://, or ftp://
        replacePattern1 = /(\b(https?|ftp):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/gim,
        //URLs starting with "www." (without // before it, or it'd re-link the ones done above).
        replacePattern2 = /(^|[^\/])(www\.[\S]+(\b|$))/gim,
        //Change email addresses to mailto:: links.
        replacePattern3 = /(\w+@[a-zA-Z_]+?\.[a-zA-Z]{2,6})/gim;

        return function(text, target, otherProp) {        
            angular.forEach(text.match(replacePattern1), function(url) {
                text = text.replace(replacePattern1, "<a href=\"$1\" target=\"_blank\">$1</a>");
            });
            angular.forEach(text.match(replacePattern2), function(url) {
                text = text.replace(replacePattern2, "$1<a href=\"http://$2\" target=\"_blank\">$2</a>");
            });
            angular.forEach(text.match(replacePattern3), function(url) {
                text = text.replace(replacePattern3, "<a href=\"mailto:$1\">$1</a>");
            });

            return text;        
        };
    }); …
Run Code Online (Sandbox Code Playgroud)

javascript angularjs angularjs-filter

7
推荐指数
1
解决办法
1万
查看次数

在C中的链表上插入排序?

我试过寻找类似于我的问题,但没有找到太多帮助.

我有一个这种结构的链表:

struct PCB {
    struct PCB *next;
    int reg1, reg2;
};
Run Code Online (Sandbox Code Playgroud)

我首先以这种方式创建10个PCB结构:

for(i=20;i<=30;i++) {
        curr = (struct PCB *)malloc(sizeof(struct PCB));
        curr->reg1 = i;
        curr->next  = head;
        head = curr;
    }
Run Code Online (Sandbox Code Playgroud)

然后我需要再创建20个PCB结构,但是reg1需要使用它们生成它们的值rand().我正在这样做:

for (j = 0;j<20;j++) {
        curr = (struct PCB *)malloc(sizeof(struct PCB));
        curr->reg1 = rand()%100;
        curr->next  = head;
        head = curr;
    }
Run Code Online (Sandbox Code Playgroud)

但是,当使用随机reg1值将这些PCB结构插入到链表中时,我需要按顺序将它们插入到链表中(插入排序).在单链接链表中处理此问题的最佳方法是什么?谢谢

编辑:我现在正在跟踪第一个创建的结构,以便能够从头开始循环链接列表:

// create root struct to keep track of beginning of linked list
root = (struct PCB *)malloc(sizeof(struct PCB));
root->next …
Run Code Online (Sandbox Code Playgroud)

c linked-list insertion-sort singly-linked-list

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

AngularJS后退按钮

我正在使用Phonegap和AngularJS制作Android应用程序.我正在尝试创建一个按钮,用作"取消"和"后退"按钮,这基本上只是点击浏览器的"后退"按钮.

这是取消按钮的一些示例HTML:

<a href="#" ng-click="goBack()" class="button--cancel weight--bold vertical-align--middle text-center">cancel</a>
Run Code Online (Sandbox Code Playgroud)

这是该页面的控制器,带有goBack()按钮:

function NewOccasionCtrl($scope, $window) {
    $scope.$window = $window;
    $scope.goBack = function() {
      $window.history.back();
    };
}
Run Code Online (Sandbox Code Playgroud)

这不会引发错误,但也不起作用......模拟器仍保留在同一页面上.没有$scope.$window = $window它会抛出错误.我希望在不必创建/使用指令的情况下实现功能性"后退"按钮,因为据我所知,然后实现模板和我不需要/想要的东西.

有没有办法做到这一点?谢谢

android angularjs cordova

5
推荐指数
1
解决办法
9296
查看次数