小编2oo*_*oom的帖子

如何使用Ionic Framework进行Web App开发?

是否可以将离子frameowork用于常规Web应用程序而不是将其包装在Cordova中?

mobile web-applications hybrid-mobile-app ionic-framework

75
推荐指数
3
解决办法
5万
查看次数

Owin的Global.asax有Application_End吗?

Startup.cs是一种初始化应用程序而不是Application_StartGlobal.asax 的新方法,它很好.但是有没有地方放置我的拆解逻辑,例如:

public class WebApiApplication : System.Web.HttpApplication
{
  protected void Application_End()
  {
    // Release you ServiceBroker listener
    SqlDependency.Stop(connString);
  }
}
Run Code Online (Sandbox Code Playgroud)

Microsoft.Owin命名空间中查找,但它似乎只有OwinStartupAttribute.这是否意味着应用程序生命周期事件仍由System.Web.HttpApplication实例处理,并且OWIN规范不支持?

.net asp.net asp.net-mvc owin katana

35
推荐指数
2
解决办法
4975
查看次数

如何在ASP.NET vNext中处理调试/发布配置转换

在以前的ASP.NET版本中,我们许多人使用Web.Debug.config/ Web.Release.configfiles trasformations看起来像这样:

Web.config:

<connectionStrings>
  <add name="AppDB" connectionString="Data Source=(LocalDb)\\..." />
</connectionStrings>
Run Code Online (Sandbox Code Playgroud)

Web.Release.config:

<connectionStrings>
  <add name="AppDB" connectionString="Data Source=(ReleaseDb)\\..."  xdt:Transform="SetAttributes" xdt:Locator="Match(name)"/>
</connectionStrings>
Run Code Online (Sandbox Code Playgroud)

根据ASP.NET vNext教程,您仍然可以使用Web.config.但config.json似乎是根据同一篇文章处理配置的新方法:

config.json

{
    "Data": {
        "DefaultConnection": { 
            "ConnectionString": "Server=(localdb)\\..."
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

Startup.cs中:

var configuration = new Configuration();
configuration.AddJsonFile("config.json");
configuration.AddEnvironmentVariables();
Run Code Online (Sandbox Code Playgroud)

所以我想知道通过这种转换到json来处理配置转换的建议方法是什么?

asp.net config release web-config asp.net-core

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

Specflow步骤等待异步API

我们试图通过以下方法来打破测试,以防DoAyncStuff()方法中发生故障:

[Given(@"There is something")]
public async Task GivenSomething()
{
    await DoStuff();
}

private async Task DoStuff()
{
    await Task.Run(() => Thread.Sleep(1000));
    throw new ApplicationException("Boom");
}
Run Code Online (Sandbox Code Playgroud)

但它实际上是一个快乐的绿色运行,直到你使用.Wait().Result:

[Given(@"There is something")]
public void GivenSomething()
{
    DoStuff().Wait();
}
Run Code Online (Sandbox Code Playgroud)

问题似乎出现在NUnit generated-spec中,如下所示:

public virtual void SomethingAsync()
{
    ...
    testRunner.Given("There is something", ...);
    ...
}
Run Code Online (Sandbox Code Playgroud)

这似乎与以下代码一起使用:

public virtual async Task SomethingAsync()
{
    ...
    await this.ScenarioSetup(scenarioInfo);
    ...
}
Run Code Online (Sandbox Code Playgroud)

上面的代码是手动编辑的自动生成的文件,所以我实际上正在寻找一种自动生成以下代码的方法.

该文档似乎是asyncronous API唯一可用的选项,但实际上它适用于Silverlight,据我所知使用某种API,而我们更喜欢使用本机C#await关键字.

是否有一种方法可以原生处理async/awaitSpecFlow步骤?

c# bdd nunit specflow async-await

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

Angular有没有办法在不使用$ watch的情况下对模型更改做出反应?

我正在AngularJS中实现一个简单的微调控件,我想对用户输入和+/-按钮的更改做出反应.这是我的HTML:

<input type='button' ng-click="MyProperty = MyProperty - 1" value="-">
<input type='text' ng-model="MyProperty" ng-change="log('changed from ngChange')">
<input type='button' ng-click="MyProperty = MyProperty + 1" value="+">
Run Code Online (Sandbox Code Playgroud)

但是,这将仅跟踪"用户更改",ngChange因为根据文档,仅支持用户交互更新

所以现在我看着$scope.$watch弗雷德里克建议:

$scope.$watch('MyProperty', function() {
  $scope.log('changed from $watch');
});
Run Code Online (Sandbox Code Playgroud)

请参阅plunker演示

但这似乎并不正确.

  1. 首先它不是声明性的,你必须搜索代码MyTestProperty才能找到这个绑定.
  2. 如果你想要放在$scope.log一个单独的模型中,你必须注入$scope或在控制器中进行绑定.据我所知,这两种方式都不被认为是最好的实践.

有些人认为,$watch由于其他一些原因,这通常是件坏事.但是那里建议的解决方案(将直接调用logngClick)对我来说并没有太大的不同.基本上你必须手动跟踪所有的变化,如果有新的演员,你必须在那里复制你的逻辑.

所以问题是:有没有一种方法可以让你在没有$ watch的情况下自动跟踪模型更新?如果现在有这样的方式,那么实现自己的derective的想法有多糟糕?

javascript angularjs angularjs-directive angularjs-ng-change

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

$ http拦截器中的Angular UI Bootstrap模式对话框挂起浏览器

我正在尝试实现延迟授权,只有当用户触发调用需要身份验证的API时才会引入登录对话框.我正在使用bootstrap ui.bootstrap.modal(以及模态中的ui.bootstrap.alert).问题是这些指令明确指定了以下内容teamplateUrl:

  • template/modal/backdrop.html(在modal.js 这里)
  • template/modal/window.html(在modal.js 这里)
  • template/alert/alert.html(在alert.js 这里)

像这样:

.directive('modalBackdrop', ['$timeout', function ($timeout) {
  return {
    restrict: 'EA',
    replace: true,
    templateUrl: 'template/modal/backdrop.html',
    link: function (scope, element, attrs) {
      /* ... */
    }
  };
}])
Run Code Online (Sandbox Code Playgroud)

每当我调用$modal.open()ui-bootstrap为新的模态窗口构建DOM时,angular会尝试通过$http服务解析这些URL,即使模板已经通过$templateCache.put方法或添加<script>标记加载.这基本上是在我的拦截器中引起无限递归,它试图在request上面的url的重载中引入登录对话框.

这是我的拦截器的简化版本:

.config(['$provide', '$httpProvider', function($provide, $httpProvider) {
    $provide.factory('testInterceptor', ['$injector', function($injector) {
        return {
        'request': function(config) {

            var auth = $injector.get('authService');
            var modal = $injector.get('$modal');
            if …
Run Code Online (Sandbox Code Playgroud)

angularjs angular-ui angularjs-directive angular-ui-bootstrap angularjs-http

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