小编Jer*_*ell的帖子

如何在AngularJS中进行双向过滤?

AngularJS可以做的一件有趣的事情是将过滤器应用于特定的数据绑定表达式,这是一种应用的便捷方式,例如,特定于文化的货币或模型属性的日期格式.在范围上计算属性也很好.问题是这些功能都不适用于双向数据绑定方案 - 只是从范围到视图的单向数据绑定.这在一个优秀的图书馆中似乎是一个明显的遗漏 - 或者我错过了什么?

KnockoutJS中,我可以创建一个读/写计算属性,它允许我指定一对函数,一个被调用以获取属性的值,另一个在设置属性时被调用.这允许我实现,例如,文化感知输入 - 让用户键入"$ 1.24"并将其解析为ViewModel中的浮点数,并在输入中反映ViewModel中的更改.

我能找到的最接近的东西是使用$scope.$watch(propertyName, functionOrNGExpression);这个允许我在$scope更改属性时调用一个函数.但这并不能解决例如文化意识的输入问题.当我尝试$watched$watch方法本身中修改属性时,请注意问题:

$scope.$watch("property", function (newValue, oldValue) {
    $scope.outputMessage = "oldValue: " + oldValue + " newValue: " + newValue;
    $scope.property = Globalize.parseFloat(newValue);
});
Run Code Online (Sandbox Code Playgroud)

(http://jsfiddle.net/gyZH8/2/)

当用户开始输入时,输入元素变得非常混乱.我通过将属性拆分为两个属性来改进它,一个用于未解析的值,另一个用于解析的值:

$scope.visibleProperty= 0.0;
$scope.hiddenProperty = 0.0;
$scope.$watch("visibleProperty", function (newValue, oldValue) {
    $scope.outputMessage = "oldValue: " + oldValue + " newValue: " + newValue;
    $scope.hiddenProperty = Globalize.parseFloat(newValue);
});
Run Code Online (Sandbox Code Playgroud)

(http://jsfiddle.net/XkPNv/1/)

这是对第一个版本的改进,但是有点冗长,并注意到parsedValue范围更改的属性仍然存在问题(在第二个输入中键入内容,parsedValue直接更改.注意顶部输入不更新).这可能发生在控制器操作或从数据服务加载数据. …

javascript data-binding angularjs angularjs-scope

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

C#风格:Lambdas,_ =>或x =>?

我在C#中使用lambda表达式之前已经习惯使用lambda表达式,因此我养成了使用_简单lambda 的习惯,Func<T, TResult>,特别是对于简单的lambda,其中body只是表示返回值的表达式(谓词等) ..).但是,在C#中,我经常看到使用单个字母而不是_用于这些相同类型的lambda表达式,例如x,y,z,i,j,k.字母方法对我来说似乎很奇怪,因为这些字母在循环变量中已经具有常用的另一种典型含义._在我看来,通常更容易阅读.单字母风格真的是C#中lambdas的既定风格吗?

例子:

我以前写的东西:

var ages = people.Select(_ => _.Age);
Run Code Online (Sandbox Code Playgroud)

我所看到的是写作:

var ages = people.Select(x => x.Age); // choice of 'x' is not consistent
Run Code Online (Sandbox Code Playgroud)

c# lambda coding-style

26
推荐指数
4
解决办法
8111
查看次数

Visual Studio中的C++代码段支持?

我正在用本机C++(而不是C++/CLR)编写代码.我知道在片段管理器和片段选择器接口方面没有内置的C++支持,但是我发现了一个名为"snippy"的实用程序,它可以生成C++片段.这是程序生成的c ++代码段:

<?xml version="1.0" encoding="utf-8"?>
<CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
  <CodeSnippet Format="1.0.0">
    <Header>
      <Title>MySnippet</Title>
      <Shortcut>MySnippet</Shortcut>
      <Description>Just a test snippet</Description>
      <Author>Me</Author>
      <SnippetTypes>
        <SnippetType>Expansion</SnippetType>
      </SnippetTypes>
    </Header>
    <Snippet>
      <Declarations>
        <Literal Editable="true">
          <ID>literal1</ID>
          <ToolTip>just a placeholder</ToolTip>
          <Default>
          </Default>
          <Function>
          </Function>
        </Literal>
      </Declarations>
      <Code Language="cpp"><![CDATA[cout << "$literal1$" << std::endl;]]></Code>
    </Snippet>
  </CodeSnippet>
</CodeSnippets>
Run Code Online (Sandbox Code Playgroud)

如果在Visual C++中有支持,即使在有限的容量中,对于C++片段,如何将它们添加到我的环境中,以及有哪些限制?我只需要支持基本的扩展片段,我可以通过键入快捷键和点击标签来调用它,并支持我可以选中的基本文字(基本上,如果它支持上面的片段,我很好).如果无法做到这一点,是否有支持C++片段的Visual Studio的免费附加组件或扩展?我正在使用Visual Studio 2010和2008,但我现在主要在2010年编写代码.

c++ visual-studio code-snippets

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

惯用属性更改了scala中的通知?

我试图在WPF/silverlight数据绑定中使用数据绑定看到一种更清晰的替代方案(对于Scala来说是惯用的) - 即实现INotifyPropertyChanged.首先,一些背景:

在.Net WPF或silverlight应用程序中,您具有双向数据绑定的概念(即,将UI的某些元素的值绑定到DataContext的.net属性,以便更改为UI元素影响属性,反之亦然.实现这一点的一种方法是在DataContext中实现INotifyPropertyChanged接口.不幸的是,这为你添加到"ModelView"类型的任何属性引入了很多样板代码.这是它的外观在斯卡拉:

trait IDrawable extends INotifyPropertyChanged
{    
      protected var drawOrder : Int = 0
      def DrawOrder : Int = drawOrder
      def DrawOrder_=(value : Int) {
            if(drawOrder != value) {
                  drawOrder = value
                  OnPropertyChanged("DrawOrder")
            }
      }

      protected var visible : Boolean = true
      def Visible : Boolean = visible
      def Visible_=(value: Boolean) = {
            if(visible != value) {
                  visible = value
                  OnPropertyChanged("Visible")
            }
      }
      def Mutate() : Unit = {
          if(Visible) {
              DrawOrder += 1 // Should trigger …
Run Code Online (Sandbox Code Playgroud)

scala scala-2.8 scala-2.7

11
推荐指数
1
解决办法
660
查看次数

在Windows 8中的WinRT上动态代码执行(C++或.NET/C#)?

Windows 8 metro下的WinRT是否允许您动态加载和执行代码?例如,是否可以将dll下载到内存或隔离存储并从中运行代码?可以编写JIT编译脚本语言到本地汇编语言(例如第三方浏览器)的代码能够在WinRT中执行相同的操作,还是禁止将其作为"不安全"操作?

对于在WinRT中运行的"托管"代码,这个问题的答案是否有所不同?例如,在托管代码中,您是否可以从Internet下载程序集并使其在MEF中可被发现或以其他方式在运行时加载它?你能用某种形式的Reflection.Emit吗?在C++中,您可以运行应用程序在运行时生成的汇编代码,还是在运行时动态加载DLL(可能是某种形式的WinRT DLL)?

c# c++ dll windows-8 windows-runtime

11
推荐指数
4
解决办法
8169
查看次数

如何从托管项目引用本机WinRT组件?

据说你可以创建一个可以在C#中使用的C++ WinRT组件.我有一个简单的测试项目 - 一个C#XAML应用程序,以及一个仅使用基本WinRT组件项目模板的C++项目.当我尝试在C#XAML项目中添加项目引用时,它表示无法添加引用(不确定原因).我可以构建本机WinRT组件,并生成.winmd文件,我可以使用添加引用对话框中的浏览按钮手动添加对此.winmd文件的引用.这允许我访问本机库中的方法,但是当我构建时,它表示它使用的是Platform.IDisposable,但该类型是在未引用的程序集中定义的.我没有看到任何会话演示这种情况.

c# windows-8 windows-runtime c++-cx

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

OWIN多应用承载令牌认证

我想对VS 2013中的ASP.NET的默认单页面应用程序模板进行修改,该模板当前使用了承载令牌身份验证.该示例使用app.UseOAuthBearerTokens创建令牌服务器和中间件,以验证同一应用程序中的请求令牌.

我想做的是保留原样,但添加第二个应用程序(在IIS中绑定到同一个域,不同的路径 - 例如/ auth/*用于身份验证服务器,/ app1/*用于应用程序).对于第二个应用程序,我希望它接受第一个应用程序中的身份验证服务器发出的令牌.怎么可以实现呢?我在Startup.Auth.cs中尝试了以下内容,只是关闭了UseOAuthBearerTokens中的代码,但我得到了对[Authorize]属性的任何请求的401响应:

public partial class Startup
{
    static Startup()
    {
        PublicClientId = "self";

        UserManagerFactory = () => new UserManager<IdentityUser>(new UserStore<IdentityUser>());

        OAuthOptions = new OAuthAuthorizationServerOptions
        {
            //TokenEndpointPath = new PathString("/Token"),
            Provider = new ApplicationOAuthProvider(PublicClientId, UserManagerFactory),
            //AuthorizeEndpointPath = new PathString("/api/Account/ExternalLogin"),
            //AccessTokenExpireTimeSpan = TimeSpan.FromDays(14),
            AuthenticationMode = Microsoft.Owin.Security.AuthenticationMode.Active,
            AuthenticationType = "ExternalBearer",
            AllowInsecureHttp = true,
        };
    }

    public static OAuthAuthorizationServerOptions OAuthOptions { get; private set; }

    public static Func<UserManager<IdentityUser>> UserManagerFactory { get; set; }

    public static string PublicClientId { get; …
Run Code Online (Sandbox Code Playgroud)

asp.net oauth asp.net-web-api owin

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

如何从proguard构建中排除R*.class文件

我距离制作此处描述的方法还有一步之遥: 使用Scala 2.8 Trunk构建目标Android

使用单个项目(与scala的一个项目和android的一个项目).

我遇到了一个问题.使用此输入文件(参数)proguard:

-injars bin;lib/scala-library.jar(!META-INF/MANIFEST.MF,!library.properties)

-outjar lib/scandroid.jar

-libraryjars lib/android.jar

-dontwarn
-dontoptimize
-dontobfuscate
-dontskipnonpubliclibraryclasses
-dontskipnonpubliclibraryclassmembers

-keepattributes Exceptions,InnerClasses,Signature,Deprecated,
                SourceFile,LineNumberTable,*Annotation*,EnclosingMethod
-keep public class org.scala.jeb.** { public protected *; }
-keep public class org.xml.sax.EntityResolver { public protected *; }
Run Code Online (Sandbox Code Playgroud)

Proguard成功构建了scandroid.jar,但它似乎包含了android资源构建器生成和编译的生成的R类.在这种情况下,它们位于bin/org/jeb/R*.class中.这不是我想要的.android dalvik转换器无法构建,因为它认为R类有重复(它在scandroid中,也在R*.class文件中).如何修改上面的proguard参数以从scandroid.jar中排除R*.class文件,以便dalvik转换器满意?编辑:我应该注意到我尝试添加; bin/org/jeb/R.class;等...到-libraryjars参数,这似乎只会导致它抱怨重复的类,另外proguard决定排除我的scala类文件也是.

eclipse android scala proguard

8
推荐指数
2
解决办法
6357
查看次数

如何将Entity Framework与Web API混合使用

我正在研究新的ASP.NET MVC4 Web API框架.我在Windows 8消费者预览版上运行Visual Studio 2011测试版.

我的问题是,新的Web API框架的官方示例都没有使用任何类型的数据库后端.在过去,我已经能够创建一个本地SQL CE数据库,并使用Entity Framework作为ORM通过WCF数据服务提供服务.如何使用Web API执行相同的操作?

这也是一个有效的问题吗?如果我想暴露实体框架映射的SQL CE数据库,我应该继续使用WCF数据服务吗?它似乎工作正常,除了不提供选择响应格式化程序的灵活性,我可能会得到web api.

asp.net asp.net-mvc entity-framework asp.net-web-api

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

使用转义分析的静态java字节码优化器(如proguard)?

基于逃逸分析的优化是Proguard的计划功能.与此同时,是否有像proguard这样的现有工具已经进行了需要转义分析的优化?

java scala proguard escape-analysis

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