小编sur*_*lit的帖子

使用$ routeProvider重定向到Angular之外的路由

我在Angular中编写了一个Web应用程序的一部分.为了确保覆盖所有路由,我想添加一个redirectTo属性$routeProvider,以便将无效路由返回到Web应用程序的根目录,而不使用Angular.

我试过了:

$routeProvider.otherwise({
    redirectTo: '/'
});
Run Code Online (Sandbox Code Playgroud)

但显然这只是在URL的Angular控制部分中的路由,因此用户将被重定向到一个URL http://app.com/angular-part-of-web-app#,而不是http://app.com我希望他们去的地方.

我通过将一个空白的部分用作'404'页面,然后是一个只使用该$window对象重定向到所需页面的控制器来解决这个问题:

routes.js

// Redirect to site list.
$routeProvider.when('/404', {
    templateUrl: '/partials/404.html',
    controller: 'RedirectCtrl'
});

// Redirect to the 404 page.
$routeProvider.otherwise({
    redirectTo: '/404'
});
Run Code Online (Sandbox Code Playgroud)

controllers.js

// Controller to redirect users to root page of site.
.controller('RedirectCtrl', ['$scope', '$window', function ($scope, $window) {

    $window.location.href = '/';
}]);
Run Code Online (Sandbox Code Playgroud)

然而,这是掀起'太hacky,必须是更好的方式'的警钟.在Angular有更好的方法吗?

编辑:Angular路线 - 重定向到外部网站?没有回答同一个问题.我将打开我的问题,而不是将其标记为重复(现在),因为Angular世界移动如此之快,之前的答案可能不再是这样.

javascript angularjs

37
推荐指数
4
解决办法
6万
查看次数

为什么1 === 1 === 1假?

在浏览器控制台中,输入1===1计算结果true.输入1===1===1评估为false.

我认为这是因为评估语句的方式:

1 === 1 === 1

(1 === 1) === 1

评估为

true === 1

是的false.

它是否正确?如果没有,这种行为的真正原因是什么?

javascript boolean-logic operators

32
推荐指数
2
解决办法
2521
查看次数

将RequireJS Javascript代码库缩小为单个文件

我是RequireJS的新手,也许这是一个已经讨论过的问题,但我找不到明确的答案或意见.

我有一个使用RequireJS的应用程序.由于需要,它有许多JavaScript文件由Require加载.按预期工作.

期待Fiddler检查员我可以看到应用程序启动时加载了所有文件.我相信Require已经对JavaScript文件的所有引用进行了深入遍历,并在开始时加载它们.

如果这是它的工作方式,我相信生成单个文件,缩小它并使用<script>html标记加载它会更好.

如果我使用所有脚本生成一个单独的文件,并预先加载它们,那么<script>RequireJS会再次加载它们吗?

难道我做错了什么?

在生产环境中,什么是更好的解决方案?

提前致谢.

requirejs

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

AngularJS - routeProvider解析调用服务方法

我创建了一个检查用户登录状态的服务(如果令牌存在则记录用户,否则重定向到登录页面).

最初我通过routeProvider解析调用了这个服务 - 这个工作完美一次,但由于Angularjs服务是单例,因此连续调用不会运行测试.

然后我尝试将测试移动到返回对象中的方法中,但是我似乎无法让routeProvider解析为调用服务的特定方法(这在某种程度上是有意义的).

问题是,如何确保每次加载路线时都执行我的测试?

在egghead视频系列(http://www.egghead.io/video/rbqRJQZBF3Q)中,他使用分配给控制器的功能,但这似乎不是生产应用程序的正确解决方案(我不想分配)一个特定控制器的函数,我相信Angularjs依赖注入将不起作用).

javascript angularjs

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

Groovy Grails,如何在Controller的响应中传输或缓冲大文件?

我有一个控制器,它连接到一个URL来检索一个csv文件.

我能够使用以下代码在响应中发送文件,这很好.

    def fileURL = "www.mysite.com/input.csv"
    def thisUrl = new URL(fileURL);
    def connection = thisUrl.openConnection();
    def output = connection.content.text;

    response.setHeader "Content-disposition", "attachment;
    filename=${'output.csv'}"
    response.contentType = 'text/csv'
    response.outputStream << output
    response.outputStream.flush()
Run Code Online (Sandbox Code Playgroud)

但是我认为这个方法不适合大文件,因为整个文件被加载到控制器内存中.

我希望能够通过块读取文件块,并通过块将文件写入响应块.

有任何想法吗?

grails response grails-controller

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

'ExecuteReader需要一个开放且可用的连接.连接的当前状态是打开的'

用C#编写的一个相当大的Web应用程序不断抛出2个错误:

'ExecuteReader需要一个开放且可用的连接.连接的当前状态是打开的.并且'读取器关闭时无效尝试调用读取.'

这些错误是偶然的 - 用于在95%的时间内加载精细的页面,但最近它们变得流行,它们一直在发生并且基本上削弱了应用程序的功能.

Web应用程序高度依赖于MS SQL数据库,并且错误似乎不仅限于一个页面,而是几乎所有连接到数据库的页面.

查询按如下方式执行:

Database.Open(); // Custom class that has our connection string hard coded.

string query = "SELECT * FROM table"; // (dummy query)
SqlCommand command = new SqlCommand(query, Database.Conn);

SqlDataReader reader = null;

try {
    reader = command.ExecuteReader(CommandBehaviour.CloseConnection);

    if (reader.HasRows) {

        while (reader.Read()) {
            // Do something with the data.
        }
   }
    reader.Close();
}
catch (Exception e) {
    throw new Exception(e.Message);
}
finally {
    if (reader != null) {
        reader.Close();
    }
}
Run Code Online (Sandbox Code Playgroud)

我在网上研究过这些错误,并且我已经看到了一些我试过无用的潜在解决方案:

将代码的各个部分放在using()块中.为阅读器指定CommandBehaviour.CloseConnection.检查MARS是否已启用.确保每次都创建新的连接对象. …

c# t-sql exception sqldatareader

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

C# - 在另一个字符串中查找一组字符串之一的最快方法

我需要检查字符串是否包含任何脏话.

根据另一个问题的一些建议,我创建了一个包含以下单词的HashSet:

HashSet<string> swearWords = new HashSet<string>() { "word_one", "word_two", "etc" };
Run Code Online (Sandbox Code Playgroud)

现在我需要查看swearWords我的字符串中是否包含任何值.

我已经看到它反过来了,例如:

swearWords.Contains(myString)
Run Code Online (Sandbox Code Playgroud)

但这将失败.

查看HashSet中是否有任何单词的最快方法是myString什么?

注意:我想我可以使用foreach循环依次检查每个单词,如果找到匹配则中断,我只是想知道是否有更快的方法.

.net c# regex string

6
推荐指数
3
解决办法
3565
查看次数

看不见时,CSS动画仍然会发生吗?

我有一个元素作为加载指标.这是一直存在我的网页上,并显示/通过添加/移除它改变其不透明度和z-index的一类隐.该元素包含使用CSS动画的图像.

我担心这会对页面效率低下,因为当加载器不在屏幕上时动画可能仍然无形地发生.

我试过的

我这样做是为了动画只在元素有visible类时才起作用,但是这会导致一个刺耳的效果,因为一旦删除了类,动画就会停止,然后加载器才会有淡入淡出的变化.添加transition到动画似乎没有任何影响.

css animation

3
推荐指数
1
解决办法
198
查看次数

如何在不破坏HTML标签的情况下将空间转换为?

我为网络论坛继承了一些相当复杂的代码,我试图实现的功能之一是空间不能被截断为只有一个.这主要是因为我们的用户经常希望在帖子中包含ASCII艺术,表格等.

我首先使用简单的搜索并在javascript中替换,这具有破坏HTML标记的副作用(例如,<a href=....>成为<a&nbsp;href=.....>).

然后我尝试在服务器端执行此操作,当检索字符串时,通过在链接和代码人插入之前转换空格转换为HTML.这在一定程度上起作用,但它会导致代码的其他部分出现一些问题,例如,如果消息被截断以显示在主页上,则可能会留下一些空格代码,例如

这是一条消息&nb

我认为可能有一种方法可以改变原始的javascript来实现这一点 - 它只需要匹配不在HTML标记内的空格.

我最初使用的脚本是message = message.replace(/\s/g, "&nbsp;").

感谢您提供的任何帮助.

html javascript regex string

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