小编Sho*_*lad的帖子

基本Knockout JS映射到单个JSON对象

我是淘汰赛的新手,我正在创建一个想要获得淘汰赛优势的jquery移动应用程序.我已经花了最后一天抨击我的头撞到一个非常简单的问题..我已经删除了代码并手动绑定(因此几乎击败了使用KO而不是jquery的目的)..无论如何,如果有人可以告诉我如何改变我必须使用KO的真正力量,那么对我来说这将是一个很好的基础.我能找到的任何代码示例总是存在比这更复杂的问题(处理数组等)

我的JSON:

{"id":9,"fullName":"John Doe","firstName":"John","lastName":"Doe","referenceNumber":"BUY-08","position":"Buyer","type":"Buyer","telephone":"028 82 240780","email":"m@email.com","departmentId":3,"departmentName":"DEPT B","country":"United Kingdom"}
Run Code Online (Sandbox Code Playgroud)

我的HTML:

 <div>
    Full Name: <input data-bind="value: fullName" disabled="disabled"/> <br />
    Ref: <input data-bind="value: reference" disabled="disabled"/> <br />
    Position: <input data-bind="value: position" disabled="disabled"/> <br />
    Email: <input data-bind="value: email" disabled="disabled"/> <br />
    Dept: <input data-bind="value: departmentName" disabled="disabled"/> <br />
    Country: <input data-bind="value: country" disabled="disabled"/> <br />
</div>  
Run Code Online (Sandbox Code Playgroud)

我的Javascript:

$(document).ready(function () { 

    function DetailsViewModel() {
        var self = this; 
        self.fullName = ko.observable("");
        self.reference = ko.observable("");
        self.email = ko.observable("");
        self.position = ko.observable("");
        self.departmentName = ko.observable(""); …
Run Code Online (Sandbox Code Playgroud)

javascript json knockout-mapping-plugin knockout.js

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

AngularJS下拉(ng-选项)不绑定 - 字符串到对象(初始选择)

我将从服务器检索到的数据绑定到下拉列表时遇到问题.我认为的主要问题是比较是在不同的对象类型上完成的.

例如:1.从服务器返回的对象包含货币代码字符串.我们希望将其绑定到下拉列表中的项目

"baseCurrencyCode":"GBP"
Run Code Online (Sandbox Code Playgroud)
  1. 视图模型返回货币列表.这些货币将作为具有不同属性的货币对象列表返回

    {"currencies":[{"id":1,"rateId":0,"abbreviation":"AFN","description":"Afghani","rate":0.0,"rateDescription":null,"languageCode":"en-gb","isDefault":true,"fullDescription":"AFN - Afghani - ","shortDescription":"AFN - Afghani"}}
    
    Run Code Online (Sandbox Code Playgroud)

等等

目前,我通过编写一个函数来完成列表中每个项目的每个属性,找到我们希望比较的正确属性 - 进行比较,然后返回初始选择.

在调用我的保存方法时,我需要手动将货币缩写绑定到我希望返回服务器的对象.

当然必须有更好的方法来做到这一点?

我的一些代码供参考..

<select ng-model="selectedCurrency" ng-options="currency.shortDescription for currency in viewModel.currencies"></select>

// Call to my custom method..List, PropertyName, value to compare 
$scope.selectedCurrency = InitialiseDropdown($scope.viewModel.currencies, "abbreviation", $scope.updatedObject.baseCurrencyCode);

// Code executed when saving - to bind the currency to the updated object
$scope.updatedObject.baseCurrencyCode = $scope.selectedCurrency.abbreviation;
Run Code Online (Sandbox Code Playgroud)

任何帮助表示赞赏!

编辑 对不起,如果我不够清楚..总结..

这里的主要问题是绑定到下拉和初始选择.

我们正在更新的对象包含货币缩写的参数(字符串).

我们从中选择的列表是货币对象列表.由于这些是两种不同的对象类型,我无法插入角度2路绑定,并且在初始检索和保存时编写了一些代码来执行此操作.

解决此问题的最简单方法是在检索中返回货币对象而不是缩写的简单字符串,但这不是一个选项.

有没有更好的方法在不同的对象类型上启用双向绑定?

再次感谢

angularjs ng-options

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

DateTime.TryParse 似乎正在丢失原始时区信息并转换为服务器时间

我有一个带有日期/时间控件的 ASP.Net 表单。如果由于验证错误而回发表单,则日期/时间将转换为服务器时区并设置为日期/时间控件中的值 - 导致原始时区信息丢失。

我正在使用DateTime.TryParse它将日期解析为服务器时间,并且似乎丢失了原始时区。我想检查该页面是否是回发,并尽可能跳过服务器时区转换 - 所以我保留原始值。

我尝试使用TryParseExact具有时区信息的命令,但是我无法确定应该发送什么格式。

string hiddenDateTime = "2019-09-01T18:28:00.000+0800";
DateTime dateValue;
DateTime.TryParse(hiddenDateTime, CultureInfo.CurrentCulture, 
                  DateTimeStyles.None, out dateValue);
Run Code Online (Sandbox Code Playgroud)

有没有办法阻止这种到本地的转换发生并保留原始时区?

c# asp.net timezone datetime

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