标签: knockout-mapping-plugin

Knockout Js"你不能多次对同一个元素应用绑定"

我正在使用kendo移动应用程序构建器,我使用knockout js进行绑定,但我收到错误" 你不能多次将绑定应用于同一个元素 ".我有两个javascript文件,包含绑定,在我的代码下面

//Employee.js//

function EmployeeViewModel() {
   this.EmployeeName= ko.observable();
   this.EmployeeMobile= ko.observable();
   this.EmployeeEmail= ko.observable(); }
   ko.applyBindings(new EmployeeViewModel());

//Company.js//
function CompanyViewModel() {
   this.CompanyName= ko.observable();
   this.CompanyMobile= ko.observable();
   this.CompanyEmail= ko.observable(); }
   ko.applyBindings(new CompanyViewModel());

//In index page i am using this both script file drag and drop//
<html>
 <head>
 </head>
 <body>
  <script src="Employee.js"></script>
  <script src="Company.js"></script>
 </body>
</html>
Run Code Online (Sandbox Code Playgroud)

javascript jquery knockout-mapping-plugin knockout.js

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

KnockoutJS - 将计算值添加到可观察数组

我使用KnockoutJS将数据绑定到页面,ViewModel正由使用映射插件的AJAX调用的JSON响应填充,如下所示:

$(function () {
    $.getJSON("@Url.Action("Get")", 
        function(allData) {
            viewModel = ko.mapping.fromJS(allData);

            viewModel.Brokers.Url = ko.computed(function()
            {
                return 'BASEURLHERE/' + this.BrokerNum();
            });

            ko.applyBindings(viewModel);
    });
});
Run Code Online (Sandbox Code Playgroud)

那里的中间部分不起作用(没有那个计算属性就可以正常工作)."Brokers"是一个可观察的数组,我想为数组中名为URL的每个元素添加一个计算值.我将Brokers数组绑定到foreach,我想将该URL用作href锚的属性.有任何想法吗?

javascript mvvm knockout-mapping-plugin knockout.js

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

ko.mapping创建函数,扩展对象

是否有可能在映射过程中修改对象(缺少更好的术语)模式?我想是的,我似乎无法让它发挥作用.我正在尝试这样的事情:

var data = {
    itemOne: 'someData',
    itemTwo: 'moreData'
}

var mapping = {
    "newItem": {
          create: function(options) {
            return ko.observable(false);
          }
    }
};

ko.mapping.fromJS(data, mapping, _model.observableArrayPart);
Run Code Online (Sandbox Code Playgroud)

knockout-mapping-plugin knockout.js

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

Knockout.js映射不绑定子模型

我遇到了knockout.js的问题,并且映射插件没有为源数据中的子数组创建模型

var data = {
    outer: [
        {
        'id': 1,
        name: 'test outer',
        inner: [{
            'id': 1,
            name: 'test inner'}]}]
};

function OuterModel(data) {
    var self = this;
    ko.mapping.fromJS(data, {}, this);

    self.fullText = ko.computed(function() {
        return self.id() + ". " + self.name();
    });
}

function InnerModel(data, parent) {
    var self = this;
    ko.mapping.fromJS(data, {}, this);

    self.fullText = ko.computed(function() {
        return self.id() + ". " + self.name() + "(" + parent + ")";
    });
}

function PageModel() {
    var self = …
Run Code Online (Sandbox Code Playgroud)

knockout-mapping-plugin knockout.js

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

使用KnockoutJS映射插件执行部分更新

现在,我正在使用这个JSON与KO Mapping插件,它工作正常:

{
  "Controls": [
    {
      "Fields": [
        {
          "Name": "emailField", 
          "Text": "email", 
          "Visible": true
        }, 
        {
          "Name": "hiddenField", 
          "Text": "text", 
          "Visible": true
        }
      ], 
      "Name": "form2", 
      "Type": "Form"
    }, 
    {
      "Data": [
        [
          "Federico Aloi", 
          20
        ], 
        [
          "Andres Lopez", 
          31
        ], 
        [
          "Pablo Perez", 
          32
        ]
      ], 
      "Fields": [
        {
          "Name": "nameField", 
          "Text": "Nombre", 
          "Visible": true
        }, 
        {
          "Name": "ageField", 
          "Text": "Edad", 
          "Visible": true
        }
      ], 
      "Name": "datagrid1", 
      "Type": "Datagrid"
    }
  ], 
  "Name": "pagina1", 
  "Title": "Probando el KO" …
Run Code Online (Sandbox Code Playgroud)

knockout-mapping-plugin knockout.js

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

在KnockoutJS中,原型上的计算可观察量是否可行?

我有一系列从服务中回来的物品.我正在尝试为每个Item实例定义一个计算的observable,所以我的直觉告诉我把它放在原型上.

计算的observable的一种情况:系统计算点,但用户可以选择覆盖计算的值.我需要保持计算值可用,以防用户删除覆盖.我还需要合并用户指定和计算的点,并将总计加起来.

我正在使用映射来执行以下操作:

var itemsViewModel;
var items = [
    { 'PointsCalculated' : 5.1 },
    { 'PointsCalculated' : 2.37, 'PointsFromUser' : 3 }
];

var mapping = {
    'Items' : {
        create : function(options) {
            return new Item(options.data);
        }
    }
};

var Item = function(data) {
    var item = this;
    ko.mapping.fromJS(data, mapping, item);
};

Item.prototype.Points = function () {
    var item = this;
    return ko.computed(function () {
        // PointsFromUser may be 0, so only ignore it if the value is undefined/null …
Run Code Online (Sandbox Code Playgroud)

knockout-mapping-plugin knockout.js

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

淘汰计算总和

我从WCF接收数据并将其绑定到表.我在这个论坛上得到了帮助,可以添加一些计算字段,一切都很完美.我想在这张桌子的页脚添加一个总数.我的页面的简单版本可以在http://jsfiddle.net/qeUHd/3/上看到.基本上我想学习如何向我的ViewModel添加一个字段,该字段是我的样本"Amount"中另一个字段的总和的结果.任何帮助将不胜感激. http://jsfiddle.net/qeUHd/3/

knockout-mapping-plugin knockout.js

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

在javascript中迭代一个淘汰可观察数组

如何使用knockout js mapping插件迭代绑定到数据的knockout可观察数组?我创造了这个小提琴来展示我的问题.当我尝试获取knockout js数组对象的值时,它返回一个函数.

有人可以帮我解决这个问题吗?我的代码如下所示.

//Sample JSON Array
var data =
[{"street":"2532 Falkark Dr", "lat":"39.926295", "lng":"-86.012919",   "zipcode":"92256"},{"street":"8558 Appleby Ln", "lat":"39.922742", "lng":"-86.017637", "zipcode":"92256"}]

function ViewModel() {
var self = this;
self.addresses = ko.observableArray([]); 
ko.mapping.fromJS(data, {}, self.addresses);

}
var viewModel = new ViewModel();

//function binding work order details to view
$(document).ready(function () {
  ko.applyBindings(viewModel);
  gothroughtheObservableArray(viewModel.addresses());
});


function gothroughtheObservableArray(Addressarray)
{
 alert("Got Address Array of length "+Addressarray.length);    

for (var i = 0, len = Addressarray.length; i < len; ++i) {
    var address …
Run Code Online (Sandbox Code Playgroud)

knockout-mapping-plugin

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

Knockout Mapping - fromJS - 失败了一个简单的例子

我试图弄清楚我对Knockout的映射库有什么误解.我已经将它简化为一个简单的例子,并且仍然可以通过fromJS调用使其失败(而不是使用映射的变量更新).

在这个例子中,我从根本上犯了什么错误?

// Here's my view model
var ViewModel = function() {
    this.firstName = ko.observable('first');
    this.lastName = ko.observable('last');
};

var myVM = new ViewModel();

ko.applyBindings(myVM); // Apply to Knockout (works)

myVM.lastName('maiden name'); // Test an update (works)

var newData = {firstName: 'new', lastName: 'person'};

// Try update the ViewModel
ko.mapping.fromJS(newData, myVM); //(No update, or error)

// Intended result - UI updates to 'new person'
Run Code Online (Sandbox Code Playgroud)

和相应的观点:

<div class='liveExample' >   
    <p>First name: <input data-bind='value: firstName' /></p> 
    <p>Last name: <input data-bind='value: …
Run Code Online (Sandbox Code Playgroud)

javascript knockout-mapping-plugin knockout.js

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

信号器在IIS 7.5和Edge/IE中错误地反序列化我的对象,foreverFrame坏了吗?

所以我有一个简单的Signalr/Knockout项目,它使用映射插件将一个简单的对象(带有更多项的数组的项)绑定到我在JS中定义的viewModel:

var someObjectMapping = {
    'MyItemArray': {
        create: function (options) {
            return new MyItemViewModel(options.data);
        }
    }
}

var myItemMapping = {
    'ItemChildren': {
        create: function (options) {
            return new ItemChildViewModel(options.data);
        }
    }
}

var SomeObjectViewModel = function (data) {
    ko.mapping.fromJS(data, someObjectMapping, this);
}

var MyItemViewModel = function (data) {
    ko.mapping.fromJS(data, myItemMapping, this);
}

var ItemChildViewModel = function (data) {
    ko.mapping.fromJS(data, null, this);
}
Run Code Online (Sandbox Code Playgroud)

我使用SignalR的默认设置连接到我的集线器,如下所示:

    var myHubProxy = $.connection.myHub;

    myHubProxy.client.processSomeObject = function(someObject) {
        console.log('SomeObject received');
        var viewModel = new SomeObjectViewModel(someObject);
        ko.applyBindings(viewModel); …
Run Code Online (Sandbox Code Playgroud)

asp.net iis signalr knockout-mapping-plugin knockout.js

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