小编Qua*_*ngo的帖子

KnockoutJS中价值转换的最佳方法?

我一直试图找出在Knockout-JS中显示/编辑百分比值的正确方法(更一般地说,我应该如何创建像这样的可重用组件).

我的ViewModel有一个可观察的值,它是一个存储为小数的百分比,例如0.5代表50%.我想以百分比格式显示编辑值(例如'50'),这样用户就不会感到困惑(他们很容易混淆).

可写的计算机

通过设置可写的计算函数,我能够得到一个简单的版本:参见http://jsfiddle.net/Quango/fvpjN/

但是,这不是非常可重用,因为需要为每个值重新实现它.我尝试使用扩展器,但这有效地掩盖了潜在的价值,因此使其无法使用.

BindingHandlers

认为我需要的是一个绑定处理程序,所以不要写

<input data-bind="value: commission" /> 
Run Code Online (Sandbox Code Playgroud)

我会写的

<input data-bind="percentage: commission" />
Run Code Online (Sandbox Code Playgroud)

我查看了knockout.js中"value"bindingHandler中的代码,但是有很多代码用于绑定,我不想复制它.

所以我的问题是:

  1. 是否有良好的/标准/模板方式来进行这种价值转换?

  2. 如果没有,有没有办法重新使用"值"绑定而无需复制和粘贴现有代码?

valueconverter knockout.js

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

在VSTS生成过程中,将生成号添加到具有`dotnet pack`的软件包版本中

使用.NET Framework库,您可以使用通配符指定版本,并且在VSTS中运行NUGET生成任务时,NUGET pack命令会自动附加生成日期和版本。

[assembly: AssemblyVersion("1.0.*")]

NUGET PACK将生成一个NUPKG文件,其版本类似于1.0.6604.1234附加日期编号和内部版本ID。

NET标准问题

在.NET Core和.NET标准中,新.csproj格式不支持此通配符格式。

我们无法与Nuget.exe打包(原因:此问题),但我们可以使用,dotnet pack 但我需要自动增加内部版本号。dotnetVSTS中的构建任务允许我完全替换版本号,但是我想将版本保留在csproj文件中,而只需附加一个构建号(就像我以前一样)。

我发现<VersionPrefix>x.y</VersionPrefix>在csproj文件中使用可以使用,nuget pack然后可以将其他参数添加VersionSuffix=$(Build.BuildNumber)到pack任务中。

在第一个开发人员在项目属性对话框中更新了项目版本之前,一切看起来都很不错。Visual Studio将忽略VersionPrefix并设置<Version>标签-并且由于Version存在标签而将忽略内部版本号修复。

有没有办法Version从csproj 读取?如果是这样,我可以将build属性设置为Version=$(ProjectVersion).$(Build.BuildNumber)

还是在打包时有其他方法可以自动递增生成版本?

versioning azure-pipelines .net-standard

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

Namespaces for interfaces in typescript definition file

I am writing a TypeScript definition file (.d.ts) for a JS library that doesn't currently have one.

Other .d.ts file seem to put all the types into the 'global' namespace (if you see what I mean), whereas I am trying do the following:

// root valerie object 
//
declare var valerie: Valerie.ValerieStatic;

// additional types for Valerie (all inside this virtual namespace)

declare module Valerie {

    //
    // Static methods on valerie namespace
    //
    interface ValerieStatic {
        // definitions go …
Run Code Online (Sandbox Code Playgroud)

namespaces typescript

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

使用Swift在UIPageViewController子视图之间传递数据

我似乎无法找到直接困境的具体答案.

我有一个UIPageViewController以编程方式加载6个子UIView场景.它们托管了"添加"元素功能的各个阶段.目前,PageViewControllerClass将每个子视图添加到一个数组中,并在需要时将它们实例化为:

storyboard?.instantiateViewControllerWithIdentifier("editViewController")
Run Code Online (Sandbox Code Playgroud)

自然委托设置为在每个子场景之间滑动,因此不prepareForSegue运行" "功能.

当页面滑动时,实例化具有不同标识符的新场景.

从我的阅读中,我现在正在尝试设置一个代理,该代理接受一个Dictionary的实例,该代理读取/存储UIPageView进程的每个阶段(不同子场景)的输入并更新Dictionary.

我正在使用" viewWillDissapear"和" viewWillAppear"方法来帮助将传递数据设置到委托中.

不幸的是我遇到了问题,由于我缺乏经验,而且对这个具体问题不多,我需要帮助!

主要问题:

我可以在UIPageViewController课堂上设置一个数据代表,"会话"或儿童可以访问UIViews吗?

要么

有没有人知道将我的词典从孩子传给孩子的好方法????

delegates uipageviewcontroller swift

5
推荐指数
2
解决办法
5164
查看次数

通常调用Task <T>方法

任务<TResult>中的Castes TResult到System.Object相关.我正在为服务构建一个通用的异步命令执行函数.

执行通用命令的方法如下所示:

public async Task<object> ExecuteCommandAsync(string cmdName, CommandData data)
Run Code Online (Sandbox Code Playgroud)

代码使用反射来查找具有给定的类的方法cmdName.调用它将返回Type<T>- 我们T事先不知道.然而,由于Task<T>不是协变,我不能投Task<object>.

目前我的解决方案(根据21805564)是调用Result方法并封装在一个Task.Run,如下所示:

// find the method
MethodInfo cmd = GetMethod(cmdName);
var task = (Task)cmd.Invoke(this, data);
return await Task.Run<object>(() => { return task.GetType().GetProperty("Result").GetValue(task); });
Run Code Online (Sandbox Code Playgroud)

我担心的是,这样做会否定异步的价值:获得结果现在是一个阻塞调用,所以我不妨使用同步方法.

c# generics task async-await

4
推荐指数
2
解决办法
1556
查看次数

带有 C# 代码的 Blazor 中的动态 _Hosts.cshtml 文件

刚刚使用 DevExpress 的免费 Blazor 代码<HEAD>在运行时实现自定义数据:

_Hosts.cshtml(参见元素中的代码片段):

    <!DOCTYPE html>
    <html lang="en">
    <head>
        @(await Html.RenderComponentAsync<DocumentMetadataComponent>(RenderMode.ServerPrerendered))
    </head>
    <body>
        <app>
            @(await Html.RenderComponentAsync<App>(RenderMode.ServerPrerendered))
        </app>
    <script src="_framework/blazor.server.js"></script>
</body>
Run Code Online (Sandbox Code Playgroud)

到目前为止效果很好(可以使标题、描述等动态化)。

现在的问题是我必须在顶层设置一些变量来过度使用和解释一次。我想知道使用的 url 并动态提供一些数据。

但以我现在的知识,我只能在每个组件(DocumentMetadataComponent + App)中做两次。

我在 MainLayout.razor 中获取数据:

<CascadingValue Value="StoreData" Name="StoreData">
    @Body
</CascadingValue>

@code{
    public StoreCompleteDTO StoreData { get; set; }

    protected override async Task OnInitializedAsync()
    {
        using var tl = new TimeLogger($"MainLayout.razor OnInitializedAsync()");

        StoreData = await AppState.GetStoreData(My.StoreId);
    }
}
Run Code Online (Sandbox Code Playgroud)

这个 StoreData 变量必须在动态元数据中可用,因为我必须为其他商店选择不同的 CSS 文件...

希望解释清楚。

目标是只调用一次: StoreData = await AppState.GetStoreData(My.StoreId);

因为它是网络服务调用并且需要花费时间......

谢谢!

blazor

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

JSON.NET序列化失败

我有一个LINQ-to-SQL对象,可以毫无问题地序列化为XML.我可以调用Newtonsoft.Json.JsonConvert.SerializeObject(),我得到JSON结果.当我在WebAPI中传递与对象相同的结果时,我得到一个错误(见下文).我构建了一个跟踪编写器来捕获null内部异常路径,我不知道如果路径是'',我怎么能找出导致错误的项目?

20130301122959: Started serializing AnvilDB.Partner. Path ''.
20130301122959: Error serializing AnvilDB.Partner. An item with the same key has already been added. Path ''.
Error: An item with the same key has already been added.
   at System.ThrowHelper.ThrowArgumentException(ExceptionResource resource)
   at System.Collections.Generic.Dictionary`2.Insert(TKey key, TValue value, Boolean add)
   at System.Collections.Generic.Dictionary`2.Add(TKey key, TValue value)
   at System.Web.Http.Metadata.Providers.AssociatedMetadataProvider`1.CreateTypeInformation(Type type)
   at System.Web.Http.Metadata.Providers.AssociatedMetadataProvider`1.GetTypeInformation(Type type)
   at System.Web.Http.Metadata.Providers.AssociatedMetadataProvider`1.GetMetadataForProperty(Func`1 modelAccessor, Type containerType, String propertyName)
   at System.Web.Http.Validation.ModelValidationRequiredMemberSelector.IsRequiredMember(MemberInfo member)
   at System.Net.Http.Formatting.JsonContractResolver.ConfigureProperty(MemberInfo member, JsonProperty property)
   at System.Net.Http.Formatting.JsonContractResolver.CreateProperty(MemberInfo member, MemberSerialization memberSerialization)
   at Newtonsoft.Json.Serialization.DefaultContractResolver.CreateProperties(Type type, MemberSerialization memberSerialization) …
Run Code Online (Sandbox Code Playgroud)

serialization json.net asp.net-web-api

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

您的SQL语法中有错误...'''附近

在此输入图像描述 这是我的桌子.

试图制作一个"忘记密码表".

一遍又一遍地得到同样的错误.需要你的帮助.

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''' at line 1

这是我的代码.

    Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
    Dim con As New MySqlConnection("host=localhost; username=root; database= login")
    Dim cmd As New MySqlCommand
    Dim dr As MySqlDataReader

    con.Open()
    cmd.Connection = con
    cmd.CommandText = "select 'from users where userID= ' " & userTxt.Text & " ' and secretQ …
Run Code Online (Sandbox Code Playgroud)

mysql sql vb.net

0
推荐指数
1
解决办法
724
查看次数