我在Angular中设置了路由,一切正常:
$locationProvider.html5Mode(true);
$routeProvider.
when('/', { templateUrl: '/Home/Index' }).
when('/User', { templateUrl: '/User/Index' });
Run Code Online (Sandbox Code Playgroud)
但是我现在有一个锚标记作为注销按钮,它只是将用户重定向到/ User/Logout,然后注销将用户注销并将它们重定向到登录页面.所以我想要的是角度js只是忽略这个特定的路由,并允许它做一个正常的http重定向.这似乎应该是非常简单的东西,但我无法找到问题的解决方案.
我知道我可以做一个click事件并在click事件中进行window.location更改,但这似乎是一种非常hacky方式.
我正忙着尝试理解c#中的安全性,我正在努力去了解Assert的工作原理.我正在使用.net 3.5.
我做了一个示例应用程序试图解决这个问题.
通话方式:
[FileIOPermission(SecurityAction.Deny, ViewAndModify = @"C:\")]
static void Main(string[] args)
{
WriteTest testWriter = new WriteTest();
testWriter.Test();
Console.Read();
}
Run Code Online (Sandbox Code Playgroud)
在一个单独的类库中,我有:
public class WriteTest
{
public void Test()
{
try
{
FileIOPermission permission = new FileIOPermission(FileIOPermissionAccess.Write, @"C:\");
permission.Assert();
using (StreamWriter sw = new StreamWriter(@"C:\test.txt"))
{
sw.WriteLine("testing!");
sw.Flush();
}
Console.WriteLine("Writen to file!");
}
catch (SecurityException sec)
{
Console.WriteLine("No privileges!");
}
}
}
Run Code Online (Sandbox Code Playgroud)
这段代码执行得很好.它将写入文件.我的问题是这究竟是如何工作的?如果我只是断言我想要的权限以便它跳过检查,这不会使安全类失效吗?如果我将Assert更改为Demand它会引发异常.
安全类的重点是不允许我设置权限,这样当我调用第三方类时,我可以防止它变成流氓并做一些我不希望它做的事情?我知道如果我在AppDomain中加载dll,即使第三方DLL确实使用Assert,我也会得到这种效果,如果我直接调用它就会起作用,这似乎很奇怪.我试过在Assert上阅读MSDN文档,但我发现很难理解.
我正在使用这个控件:http://blueimp.github.io/jQuery-File-Upload/angularjs.html以角度进行文件上传,一旦文件上传到我的服务器我返回一个网址并希望显示它成功回调给客户端.正在使用的插件只是一个普通的jquery文件上传,但我提供了一个角度指令包装器.
这是我如何定义回调:
$scope.options = {
url: '/api/Client/',
type: 'PUT',
done: function (event, data) {
var scope = angular.element(this).scope();
scope.test = "doesn't work";
scope.$apply(function () {
scope.test = "this doesn't work either";
});
}
};
Run Code Online (Sandbox Code Playgroud)
文件上传很好,并且调用了done函数但是我无法更新视图.我最初尝试只是改变范围,然后我意识到我需要$ apply()函数,但这也不起作用.
我也试过了
$scope.options = {
url: '/api/Client/',
type: 'PUT',
done: function (event, data) {
$scope.test = "doesn't work";
$scope.$apply(function () {
$scope.test = "this doesn't work either";
});
}
};
Run Code Online (Sandbox Code Playgroud)
这也行不通.我不确定为什么它没有更新我的视图,因为完成调用只是一个ajax成功事件,我没有看到这个特定的插件如何导致$ scope的任何问题.$ apply.我正在使用AngularJs 1.1.5,但我也尝试过1.0.7并且遇到了同样的问题.
我已将我的类库更改为新的 csproj 样式,现在我看到下面Assemblies
有一些自动添加的引用,我无法删除。它们从哪里来,为什么在那里?
截图示例:
请注意,这不会引起任何问题。看起来很奇怪,很想知道为什么要添加这些。我用谷歌搜索了这个问题,但找不到任何东西