我有以下内容:
function activate(routeData) {
// make dataservice call, evaluate results here. If condition is met, reroute:
if (true){
router.navigateTo("#/someRoute");
}
alert ("should not be shown");
}
Run Code Online (Sandbox Code Playgroud)
然而,警报被点击,然后视图发生变化.
如何完全离开当前项目并阻止该vm中的任何其他代码被命中?
更新:
我尝试使用guardroute但我必须激活viewModel来调用dataservice,它返回确定我是否应该重新路由的数据.使用guardroute完全阻止了数据服务被调用(因为激活函数中的任何内容都不会被命中).
我也尝试从if块中返回但是仍然加载了view/viewAttached/etc,因此UX很糟糕.
我正在尝试以下方法:
[System.Web.Http.AcceptVerbs("PUT")]
public HttpResponseMessage MakePost(PostDto post) {
try {
var response = Request.CreateResponse(HttpStatusCode.Redirect); // tried MOVED too
response.Headers.Location = new Uri("google.com");
return response;
} catch (Exception e) {
ErrorSignal.FromCurrentContext().Raise(e);
return Request.CreateResponse(HttpStatusCode.InternalServerError, e);
}
}
Run Code Online (Sandbox Code Playgroud)
这似乎是部分工作 - 当调用它时,我在chrome调试器中看到POST请求."响应"选项卡中没有任何内容,但随后我看到发送到新URI的GET请求,但页面永远不会更改,并且我的AJAX调用会引发错误:
var options = {
url: postUrl,
type: type,
dataType: 'json',
xhrFields: {
withCredentials: true
}
};
return $.ajax(options)
.done(function (response) {
// do stuff
})
.fail(function (response) {
alert('error) // this gets hit - shouldn't the browser have redirected at this point?
}).complete(function …Run Code Online (Sandbox Code Playgroud) 我正在测试Nexus 4 - 4.1.1 - 768x1280和Xperia Z - 4.2.2 - 1080x1920 ......在这两种情况下,我的网站(对台式机都有响应)在Android手机中仅部分响应.WP8工作正常(令人惊讶) - 和iPhone 5一起工作 - 除了高度比它应该多一点(粘性页脚没有显示).这就好像CSS认为额外的100px左右 - 当它们不应该时,它们会被略微切断.媒体查询示例:
/* if device is less than 768px */
@media (max-width: 768px) {
.container{
width: auto;
max-width: calc(100% ~"-" 20px);
margin-left: 10px;
}
.banner-info{
padding-right: 15px;
width: auto;
max-width: 300px;
font-size: 13px !important;
}
}
Run Code Online (Sandbox Code Playgroud)
在我的标题中:
<meta content="True" name="HandheldFriendly">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
Run Code Online (Sandbox Code Playgroud)
这里发生了什么?
我有以下表格:
<html>
<body>
<form action="upload_file.php" method="post" enctype="multipart/form-data">
<label for="file">Filename:</label>
<input type="file" name="file" id="file" />
<br />
<input type="submit" name="submit" value="Submit" />
</form>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
以下脚本:
<?php
error_reporting(E_ALL);
if (($_FILES["file"]["size"] < 20000))
{
if ($_FILES["file"]["error"] > 0)
{
echo "Return Code: " . $_FILES["file"]["error"] . "<br />";
}
else
{
echo "Upload: " . $_FILES["file"]["name"] . "<br />";
echo "Type: " . $_FILES["file"]["type"] . "<br />";
echo "Size: " . ($_FILES["file"]["size"] / 1024) . " Kb<br />";
echo "Temp file: " …Run Code Online (Sandbox Code Playgroud) 我有一个使用DurandalJS构建的应用程序,具有以下内容:
我的身份验证代码是从shell.js调用的.
我需要我的shell能够监视intro.js和home.js文件中的一些属性.具体来说 - 如果用户选择其中一个视图中带有复选框的项目,我需要使用shell.js来更改菜单项.理想情况下,这可以通过允许shell"观察"视图模型中的内容来完成.这可能吗?
在下面的:
ko.utils.arrayForEach(cards, function (card) {
setTimeout(function () {
observableData().saveCard(card);
}, 1000);
});
Run Code Online (Sandbox Code Playgroud)
这应该为阵列中的每张卡等待一秒钟,但它只是等待一秒钟,然后通过阵列爆炸。我怎样才能达到预期的行为?
每隔一段时间,我就有一个可观察的,我需要"重置"它的默认值,例如当我刚刚向服务器发送一些新数据并获得成功回发时.我经常这样做:
self.dataToSend = ko.observable();
self.dataToSend(self.getPayload());
// send data, in success promise do this:
self.dataToSend = ko.observable();
Run Code Online (Sandbox Code Playgroud)
这种方法有什么问题吗?垃圾收集会自动从内存中获取旧的observable吗?
作为这篇文章的后续内容:在Azure云服务中启用协同定位的会话缓存 - 我正在尝试在Azure缓存中存储会话状态以在VIP交换之间保持会话.引用答案:
要解决此问题,我希望您尝试新的缓存服务(预览).通过这种方式,您可以为订阅创建专用缓存,以便您可以在云服务部署,虚拟机和网站中使用它们.
我已经设置了Azure缓存(预览)实例,在我的web.config中使用了其端点和主访问密钥,并部署到我的Azure云服务暂存插槽.
然后我使用Forms auth登录,并重新部署到同一个插槽.我的凭据一直存在!这很棒.
但后来我交换到Production,以相同的方式登录到生产实例,重新部署到Staging,VIP再次交换,然后刷新,期望保持登录,但它不起作用 - 我的会话在两个生产中都丢失了和分期.
我按照这里的说明操作:
可能是什么导致了这个?没有抛出任何异常 - 我的访问密钥工作(通过给它一个伪造的并且获得异常进行测试)......我不确定发生了什么.在web.config中配置部分:
<sessionState mode="Custom" customProvider="AFCacheSessionStateProvider" xdt:Transform="Insert">
<providers>
<add name="AFCacheSessionStateProvider" type="Microsoft.Web.DistributedCache.DistributedCacheSessionStateStoreProvider, Microsoft.Web.DistributedCache" cacheName="default" dataCacheClientName="default" applicationName="AFCacheSessionState"/>
</providers>
</sessionState>
Run Code Online (Sandbox Code Playgroud)
和:
<dataCacheClient name="default">
<autoDiscover isEnabled="true" identifier="mysite.cache.windows.net" />
<securityProperties mode="Message" sslEnabled="false">
<messageSecurity authorizationInfo="{my key}" />
</securityProperties>
</dataCacheClient>
Run Code Online (Sandbox Code Playgroud)
至于超时策略 - 我将其设置为永不过期并启用逐出.我是少数几个用户之一,缓存在128MB的空间中存储cookie,所以我认为它与到期有关.
我也注意到在文档中,没有applicationName像我上面那样的条目.我尝试删除它并重新测试,但无济于事 - 我的Prod会话仍然在VIP交换时丢失.
我究竟做错了什么?
更新:
来自微软论坛帖子:
我能够重现这个问题.我正在调查.
我正在努力实现以下目标:
<select ...>
<option>Column 1 Column 2</option>
<option>Line 1 Data 1</option>
<option>Line 2 Data 2</option>
<option>Line 3 Data 3</option>
<option>... ...</option>
<option>Line n Data n</option>
</select>
Run Code Online (Sandbox Code Playgroud)
不使用固定宽度的字体.我有一个选项+描述,我想为每个选项显示<select multiple />.
这是可能的直接css/html,还是我需要寻找一个插件?
我有一个 C#/.NET WebApi 端点绑定到一个数字。当该号码收到文本时,它会通过 webhook 转发到我的 API。
有时(并非总是如此),我的调试器会出现以下错误:
错误 - 12300
无效的内容类型
Twilio 无法处理提供的 URL 的 Content-Type。有关有效内容类型的更多信息,请参阅 Twilio 标记 XML 文档。您必须为所有请求返回一个 Content-Type。没有 Content-Type 的请求将在 App Monitor 中显示为 502 Bad Gateway 错误。
在触发此操作的响应中,我看到以下内容:
带有以下标题:
Content-Type application/json; charset=utf-8
Pragma no-cache
Date Sat, 14 Jan 2017 02:57:45 GMT
X-AspNet-Version 4.0.30319
X-Powered-By ASP.NET
Run Code Online (Sandbox Code Playgroud)
这可能是什么原因造成的,我该如何解决?
knockout.js ×3
css ×2
css3 ×2
durandal ×2
javascript ×2
jquery ×2
android ×1
azure ×1
c# ×1
caching ×1
file ×1
file-upload ×1
html5 ×1
php ×1
twilio ×1
twilio-api ×1
upload ×1